From 475656ef011e2f8263e0f080a5824299823eed7a Mon Sep 17 00:00:00 2001 From: etienne Date: Tue, 27 Mar 2018 11:45:54 -0400 Subject: [PATCH 1/2] fix scattergl unselected pt opacity for array pt opacity traces --- src/traces/scattergl/convert.js | 9 +++++++++ test/image/baselines/gl2d_selectedpoints.png | Bin 0 -> 18259 bytes test/image/mocks/gl2d_selectedpoints.json | 14 ++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 test/image/baselines/gl2d_selectedpoints.png create mode 100644 test/image/mocks/gl2d_selectedpoints.json diff --git a/src/traces/scattergl/convert.js b/src/traces/scattergl/convert.js index d05beb344ac..1e086af3a7f 100644 --- a/src/traces/scattergl/convert.js +++ b/src/traces/scattergl/convert.js @@ -21,6 +21,7 @@ var subTypes = require('../scatter/subtypes'); var makeBubbleSizeFn = require('../scatter/make_bubble_size_func'); var constants = require('./constants'); +var DESELECTDIM = require('../../constants/interactions').DESELECTDIM; function convertStyle(gd, trace) { var i; @@ -41,6 +42,14 @@ function convertStyle(gd, trace) { opts.marker = convertMarkerStyle(trace); opts.selected = convertMarkerSelection(trace, trace.selected); opts.unselected = convertMarkerSelection(trace, trace.unselected); + + if(Array.isArray(trace.marker.opacity)) { + var mo = trace.marker.opacity; + opts.unselected.opacity = new Array(mo.length); + for(i = 0; i < mo.length; i++) { + opts.unselected.opacity[i] = DESELECTDIM * mo[i]; + } + } } if(subTypes.hasLines(trace)) { diff --git a/test/image/baselines/gl2d_selectedpoints.png b/test/image/baselines/gl2d_selectedpoints.png new file mode 100644 index 0000000000000000000000000000000000000000..3f296210de1a0aff4c98572a7f94d448551897c7 GIT binary patch literal 18259 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 Ie*W730^(r(YybcN literal 0 HcmV?d00001 diff --git a/test/image/mocks/gl2d_selectedpoints.json b/test/image/mocks/gl2d_selectedpoints.json new file mode 100644 index 00000000000..ba4a5ead234 --- /dev/null +++ b/test/image/mocks/gl2d_selectedpoints.json @@ -0,0 +1,14 @@ +{ + "data": [{ + "name": "array marker opacity edge case", + "type": "scattergl", + "mode": "markers", + "x": [1, 2, 3, 4, 5, 6], + "y": [1, 3, 2, 4, 5, 7], + "marker": { + "size": 20, + "opacity": [0.9, 0.8, 0.7, 1, 0.6, 0.8] + }, + "selectedpoints": [1, 4, 2] + }] +} From a0e4ecb047878f8e98d560567c4f827e98068167 Mon Sep 17 00:00:00 2001 From: etienne Date: Tue, 27 Mar 2018 14:04:19 -0400 Subject: [PATCH 2/2] fix case array marker.opacity + set unselected.marker.opacity --- src/traces/scattergl/convert.js | 2 +- test/image/baselines/gl2d_selectedpoints.png | Bin 18259 -> 18911 bytes test/image/mocks/gl2d_selectedpoints.json | 21 ++++++++++++++++++- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/traces/scattergl/convert.js b/src/traces/scattergl/convert.js index 1e086af3a7f..e1c405b938a 100644 --- a/src/traces/scattergl/convert.js +++ b/src/traces/scattergl/convert.js @@ -43,7 +43,7 @@ function convertStyle(gd, trace) { opts.selected = convertMarkerSelection(trace, trace.selected); opts.unselected = convertMarkerSelection(trace, trace.unselected); - if(Array.isArray(trace.marker.opacity)) { + if(!trace.unselected && Array.isArray(trace.marker.opacity)) { var mo = trace.marker.opacity; opts.unselected.opacity = new Array(mo.length); for(i = 0; i < mo.length; i++) { diff --git a/test/image/baselines/gl2d_selectedpoints.png b/test/image/baselines/gl2d_selectedpoints.png index 3f296210de1a0aff4c98572a7f94d448551897c7..00f8f43aede94a858aadb356c2c9ae367440cc84 100644 GIT binary patch literal 18911 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 Ie*W730^(r(YybcN diff --git a/test/image/mocks/gl2d_selectedpoints.json b/test/image/mocks/gl2d_selectedpoints.json index ba4a5ead234..923c2e2bbd9 100644 --- a/test/image/mocks/gl2d_selectedpoints.json +++ b/test/image/mocks/gl2d_selectedpoints.json @@ -10,5 +10,24 @@ "opacity": [0.9, 0.8, 0.7, 1, 0.6, 0.8] }, "selectedpoints": [1, 4, 2] - }] + }, { + "name": "array marker opacity + set unselected.marker.opacity", + "type": "scattergl", + "mode": "markers", + "x": [1, 2, 3, 4, 5, 6], + "y": [3, 5, 4, 6, 7, 9], + "marker": { + "size": 20, + "opacity": [0.9, 0.8, 0.7, 1, 0.6, 0.8] + }, + "unselected": { + "marker": { + "opacity": 0 + } + }, + "selectedpoints": [1, 4, 2] + }], + "layout": { + "showlegend": false + } }