From 251d683d4d8ff14b183c02c46c451a3c94bebe47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Mon, 27 May 2019 21:42:59 -0400 Subject: [PATCH] implement coloraxis in scattergl traces --- src/lib/gl_format_color.js | 3 +- .../image/baselines/gl2d_marker_coloraxis.png | Bin 0 -> 47194 bytes test/image/mocks/gl2d_marker_coloraxis.json | 911 ++++++++++++++++++ 3 files changed, 913 insertions(+), 1 deletion(-) create mode 100644 test/image/baselines/gl2d_marker_coloraxis.png create mode 100644 test/image/mocks/gl2d_marker_coloraxis.json diff --git a/src/lib/gl_format_color.js b/src/lib/gl_format_color.js index 36cd70d5ba7..41b95484306 100644 --- a/src/lib/gl_format_color.js +++ b/src/lib/gl_format_color.js @@ -41,11 +41,12 @@ function formatColor(containerIn, opacityIn, len) { var colorIn = containerIn.color; var isArrayColorIn = isArrayOrTypedArray(colorIn); var isArrayOpacityIn = isArrayOrTypedArray(opacityIn); + var cOpts = Colorscale.extractOpts(containerIn); var colorOut = []; var sclFunc, getColor, getOpacity, colori, opacityi; - if(containerIn.colorscale !== undefined) { + if(cOpts.colorscale !== undefined) { sclFunc = Colorscale.makeColorScaleFuncFromTrace(containerIn); } else { sclFunc = validateColor; diff --git a/test/image/baselines/gl2d_marker_coloraxis.png b/test/image/baselines/gl2d_marker_coloraxis.png new file mode 100644 index 0000000000000000000000000000000000000000..e1ec515186abe08d40289e0c89486ac7a7e3ee0b GIT binary patch literal 47194 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 MQJi|2s!hay0abW)U;qFB literal 0 HcmV?d00001 diff --git a/test/image/mocks/gl2d_marker_coloraxis.json b/test/image/mocks/gl2d_marker_coloraxis.json new file mode 100644 index 00000000000..4feddd96ab4 --- /dev/null +++ b/test/image/mocks/gl2d_marker_coloraxis.json @@ -0,0 +1,911 @@ +{ + "data": [ + { + "hoverlabel": { + "namelength": 0 + }, + "hovertemplate": "sex=Female
total_bill=%{x}
tip=%{y}
size=%{marker.color}", + "legendgroup": "", + "marker": { + "color": [ + 2, + 4, + 4, + 2, + 3, + 3, + 2, + 2, + 2, + 2, + 4, + 3, + 2, + 4, + 2, + 2, + 1, + 3, + 2, + 2, + 2, + 1, + 4, + 2, + 2, + 2, + 2, + 2, + 3, + 2, + 2, + 2, + 1, + 3, + 2, + 2, + 2, + 4, + 2, + 2, + 6, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 6, + 2, + 2, + 3, + 2, + 5, + 4, + 2, + 3, + 2, + 2, + 2, + 2, + 3, + 3, + 2, + 4, + 2, + 2, + 2, + 2, + 3, + 2, + 2, + 3, + 2, + 4, + 2, + 3, + 2, + 2, + 2, + 3, + 2, + 2 + ], + "coloraxis": "coloraxis", + "symbol": "circle" + }, + "mode": "markers", + "name": "", + "showlegend": false, + "type": "scattergl", + "x": [ + 16.99, + 24.59, + 35.26, + 14.83, + 10.33, + 16.97, + 20.29, + 15.77, + 19.65, + 15.06, + 20.69, + 16.93, + 10.29, + 34.81, + 26.41, + 16.45, + 3.07, + 17.07, + 26.86, + 25.28, + 14.73, + 10.07, + 34.83, + 5.75, + 16.32, + 22.75, + 11.35, + 15.38, + 44.3, + 22.42, + 20.92, + 14.31, + 7.25, + 25.71, + 17.31, + 10.65, + 12.43, + 24.08, + 13.42, + 12.48, + 29.8, + 14.52, + 11.38, + 20.27, + 11.17, + 12.26, + 18.26, + 8.51, + 10.33, + 14.15, + 13.16, + 17.47, + 27.05, + 16.43, + 8.35, + 18.64, + 11.87, + 29.85, + 25, + 13.39, + 16.21, + 17.51, + 10.59, + 10.63, + 9.6, + 20.9, + 18.15, + 19.81, + 43.11, + 13, + 12.74, + 13, + 16.4, + 16.47, + 12.76, + 13.27, + 28.17, + 12.9, + 30.14, + 13.42, + 15.98, + 16.27, + 10.09, + 22.12, + 35.83, + 27.18, + 18.78 + ], + "xaxis": "x", + "y": [ + 1.01, + 3.61, + 5, + 3.02, + 1.67, + 3.5, + 2.75, + 2.23, + 3, + 3, + 2.45, + 3.07, + 2.6, + 5.2, + 1.5, + 2.47, + 1, + 3, + 3.14, + 5, + 2.2, + 1.83, + 5.17, + 1, + 4.3, + 3.25, + 2.5, + 3, + 2.5, + 3.48, + 4.08, + 4, + 1, + 4, + 3.5, + 1.5, + 1.8, + 2.92, + 1.68, + 2.52, + 4.2, + 2, + 2, + 2.83, + 1.5, + 2, + 3.25, + 1.25, + 2, + 2, + 2.75, + 3.5, + 5, + 2.3, + 1.5, + 1.36, + 1.63, + 5.14, + 3.75, + 2.61, + 2, + 3, + 1.61, + 2, + 4, + 3.5, + 3.5, + 4.19, + 5, + 2, + 2.01, + 2, + 2.5, + 3.23, + 2.23, + 2.5, + 6.5, + 1.1, + 3.09, + 3.48, + 3, + 2.5, + 2, + 2.88, + 4.67, + 2, + 3 + ], + "yaxis": "y" + }, + { + "hoverlabel": { + "namelength": 0 + }, + "hovertemplate": "sex=Male
total_bill=%{x}
tip=%{y}
size=%{marker.color}", + "legendgroup": "", + "marker": { + "color": [ + 3, + 3, + 2, + 4, + 2, + 4, + 2, + 2, + 2, + 2, + 4, + 2, + 3, + 3, + 2, + 4, + 2, + 4, + 2, + 2, + 2, + 2, + 4, + 2, + 3, + 3, + 3, + 3, + 3, + 2, + 2, + 2, + 4, + 2, + 2, + 4, + 3, + 2, + 2, + 2, + 4, + 2, + 4, + 2, + 4, + 2, + 2, + 2, + 4, + 3, + 3, + 2, + 2, + 2, + 2, + 2, + 4, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 4, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 2, + 4, + 2, + 2, + 2, + 2, + 3, + 2, + 2, + 6, + 5, + 2, + 2, + 2, + 2, + 3, + 4, + 4, + 6, + 4, + 4, + 2, + 2, + 3, + 2, + 4, + 3, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 4, + 2, + 3, + 4, + 2, + 5, + 5, + 3, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 4, + 3, + 4, + 2, + 3, + 4, + 4, + 5, + 2, + 2, + 2, + 1, + 2, + 4, + 2, + 4, + 3, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 2, + 2 + ], + "coloraxis": "coloraxis", + "symbol": "circle" + }, + "mode": "markers", + "name": "", + "showlegend": false, + "type": "scattergl", + "x": [ + 10.34, + 21.01, + 23.68, + 25.29, + 8.77, + 26.88, + 15.04, + 14.78, + 10.27, + 15.42, + 18.43, + 21.58, + 16.29, + 20.65, + 17.92, + 39.42, + 19.82, + 17.81, + 13.37, + 12.69, + 21.7, + 9.55, + 18.35, + 17.78, + 24.06, + 16.31, + 18.69, + 31.27, + 16.04, + 17.46, + 13.94, + 9.68, + 30.4, + 18.29, + 22.23, + 32.4, + 28.55, + 18.04, + 12.54, + 9.94, + 25.56, + 19.49, + 38.01, + 11.24, + 48.27, + 20.29, + 13.81, + 11.02, + 18.29, + 17.59, + 20.08, + 20.23, + 15.01, + 12.02, + 10.51, + 17.92, + 27.2, + 22.76, + 17.29, + 19.44, + 16.66, + 32.68, + 15.98, + 13.03, + 18.28, + 24.71, + 21.16, + 28.97, + 22.49, + 40.17, + 27.28, + 12.03, + 21.01, + 12.46, + 15.36, + 20.49, + 25.21, + 18.24, + 14, + 38.07, + 23.95, + 29.93, + 11.69, + 14.26, + 15.95, + 8.52, + 22.82, + 19.08, + 16, + 34.3, + 41.19, + 9.78, + 7.51, + 14.07, + 13.13, + 17.26, + 24.55, + 19.77, + 48.17, + 16.49, + 21.5, + 12.66, + 13.81, + 24.52, + 20.76, + 31.71, + 50.81, + 15.81, + 7.25, + 31.85, + 16.82, + 32.9, + 17.89, + 14.48, + 34.63, + 34.65, + 23.33, + 45.35, + 23.17, + 40.55, + 20.69, + 30.46, + 23.1, + 15.69, + 28.44, + 15.48, + 16.58, + 7.56, + 10.34, + 13.51, + 18.71, + 20.53, + 26.59, + 38.73, + 24.27, + 30.06, + 25.89, + 48.33, + 28.15, + 11.59, + 7.74, + 12.16, + 8.58, + 13.42, + 20.45, + 13.28, + 24.01, + 15.69, + 11.61, + 10.77, + 15.53, + 10.07, + 12.6, + 32.83, + 29.03, + 22.67, + 17.82 + ], + "xaxis": "x2", + "y": [ + 1.66, + 3.5, + 3.31, + 4.71, + 2, + 3.12, + 1.96, + 3.23, + 1.71, + 1.57, + 3, + 3.92, + 3.71, + 3.35, + 4.08, + 7.58, + 3.18, + 2.34, + 2, + 2, + 4.3, + 1.45, + 2.5, + 3.27, + 3.6, + 2, + 2.31, + 5, + 2.24, + 2.54, + 3.06, + 1.32, + 5.6, + 3, + 5, + 6, + 2.05, + 3, + 2.5, + 1.56, + 4.34, + 3.51, + 3, + 1.76, + 6.73, + 3.21, + 2, + 1.98, + 3.76, + 2.64, + 3.15, + 2.01, + 2.09, + 1.97, + 1.25, + 3.08, + 4, + 3, + 2.71, + 3, + 3.4, + 5, + 2.03, + 2, + 4, + 5.85, + 3, + 3, + 3.5, + 4.73, + 4, + 1.5, + 3, + 1.5, + 1.64, + 4.06, + 4.29, + 3.76, + 3, + 4, + 2.55, + 5.07, + 2.31, + 2.5, + 2, + 1.48, + 2.18, + 1.5, + 2, + 6.7, + 5, + 1.73, + 2, + 2.5, + 2, + 2.74, + 2, + 2, + 5, + 2, + 3.5, + 2.5, + 2, + 3.48, + 2.24, + 4.5, + 10, + 3.16, + 5.15, + 3.18, + 4, + 3.11, + 2, + 2, + 3.55, + 3.68, + 5.65, + 3.5, + 6.5, + 3, + 5, + 2, + 4, + 1.5, + 2.56, + 2.02, + 4, + 1.44, + 2, + 2, + 4, + 4, + 3.41, + 3, + 2.03, + 2, + 5.16, + 9, + 3, + 1.5, + 1.44, + 2.2, + 1.92, + 1.58, + 3, + 2.72, + 2, + 3, + 3.39, + 1.47, + 3, + 1.25, + 1, + 1.17, + 5.92, + 2, + 1.75 + ], + "yaxis": "y" + } + ], + "layout": { + "annotations": [ + { + "showarrow": false, + "text": "sex=Female", + "textangle": 0, + "x": 0.23684210526315788, + "xanchor": "center", + "xref": "paper", + "y": 1.02, + "yanchor": "middle", + "yref": "paper" + }, + { + "showarrow": false, + "text": "sex=Male", + "textangle": 0, + "x": 0.763157894736842, + "xanchor": "center", + "xref": "paper", + "y": 1.02, + "yanchor": "middle", + "yref": "paper" + } + ], + "coloraxis": { + "colorbar": { + "title": { + "text": "size" + } + }, + "colorscale": [ + [ + 0, + "#440154" + ], + [ + 0.1111111111111111, + "#482878" + ], + [ + 0.2222222222222222, + "#3e4989" + ], + [ + 0.3333333333333333, + "#31688e" + ], + [ + 0.4444444444444444, + "#26828e" + ], + [ + 0.5555555555555556, + "#1f9e89" + ], + [ + 0.6666666666666666, + "#35b779" + ], + [ + 0.7777777777777778, + "#6ece58" + ], + [ + 0.8888888888888888, + "#b5de2b" + ], + [ + 1, + "#fde725" + ] + ] + }, + "grid": { + "xaxes": [ + "x", + "x2" + ], + "xgap": 0.1, + "xside": "bottom", + "yaxes": [ + "y" + ], + "ygap": 0.1, + "yside": "left" + }, + "height": 600, + "legend": { + "tracegroupgap": 0 + }, + "margin": { + "t": 60 + }, + "xaxis": { + "title": { + "text": "total_bill" + }, + "type": "linear", + "range": [ + 0.00511244751263229, + 54.04809123905772 + ], + "autorange": true + }, + "xaxis2": { + "matches": "x", + "title": { + "text": "total_bill" + }, + "type": "linear", + "range": [ + 0.00511244751263229, + 54.04809123905772 + ], + "autorange": true + }, + "yaxis": { + "title": { + "text": "tip" + }, + "type": "linear", + "range": [ + 0.40774907749077494, + 10.592250922509225 + ], + "autorange": true + } + } +}