From ce67f7ae71ab209a2e8c4b352fd55d04cb1da892 Mon Sep 17 00:00:00 2001 From: Walker McHugh <54991626+walkermchugh@users.noreply.github.com> Date: Tue, 20 Oct 2026 21:39:00 -0400 Subject: [PATCH 1/6] Keep to-zero scatter fills separate across gaps The SVG renderer joined disconnected line segments into one fill path, which covered regions without data. Close each segment against the zero axis. --- draftlogs/PR_NUMBER_fix.md | 1 + src/traces/scatter/plot.js | 47 ++++++++++++------------------ test/jasmine/tests/scatter_test.js | 23 +++++++++++++++ 3 files changed, 43 insertions(+), 28 deletions(-) create mode 100644 draftlogs/PR_NUMBER_fix.md diff --git a/draftlogs/PR_NUMBER_fix.md b/draftlogs/PR_NUMBER_fix.md new file mode 100644 index 00000000000..b029011ba6b --- /dev/null +++ b/draftlogs/PR_NUMBER_fix.md @@ -0,0 +1 @@ + - Keep to-zero scatter fills separate across missing data [[#PR_NUMBER](https://github.com/plotly/plotly.js/pull/PR_NUMBER)] diff --git a/src/traces/scatter/plot.js b/src/traces/scatter/plot.js index 3c9e19df936..5e6c0cd3a43 100644 --- a/src/traces/scatter/plot.js +++ b/src/traces/scatter/plot.js @@ -185,7 +185,7 @@ function plotOne(gd, idx, plotinfo, cdscatter, cdscatterAll, element, transition // functions for converting a point array to a path var pathfn, revpathbase, revpathfn; // variables used before and after the data join - var pt0, lastSegment, pt1; + const fillpaths = []; // thisPolygons always contains only the polygons of this trace only // whereas trace._polygons may be extended to include those of the previous @@ -272,15 +272,15 @@ function plotOne(gd, idx, plotinfo, cdscatter, cdscatterAll, element, transition trace._fillsegments = fillsegments.slice(0, fillsegmentCount); fillsegments = trace._fillsegments; - if(segments.length) { - pt0 = segments[0][0].slice(); - lastSegment = segments[segments.length - 1]; - pt1 = lastSegment[lastSegment.length - 1].slice(); - } - makeUpdate = function(isEnter) { - return function(pts) { + return function(pts, segmentIndex) { thispath = pathfn(pts); + if(ownFillEl3 && ownFillDir) { + const start = pts[0].slice(); + const end = pts[pts.length - 1].slice(); + start[fillAxisIndex] = end[fillAxisIndex] = fillAxisZero; + fillpaths[segmentIndex] = 'M' + end + 'L' + start + 'L' + thispath.slice(1) + 'Z'; + } thisrevpath = revpathfn(pts); // side-effect: reverses input // calculate SVG path over all segments for fills if(!fullpath) { @@ -386,28 +386,19 @@ function plotOne(gd, idx, plotinfo, cdscatter, cdscatterAll, element, transition if(segments.length) { if(ownFillEl3) { ownFillEl3.datum(cdscatter); - if(pt0 && pt1) { // TODO(2023-12-10): this is always true if segments is not empty (?) - if(ownFillDir) { - pt0[fillAxisIndex] = pt1[fillAxisIndex] = fillAxisZero; - - // fill to zero: full trace path, plus extension of - // the endpoints to the appropriate axis - // For the sake of animations, wrap the points around so that - // the points on the axes are the first two points. Otherwise - // animations get a little crazy if the number of points changes. - transition(ownFillEl3).attr('d', 'M' + pt1 + 'L' + pt0 + 'L' + fullpath.slice(1)) - .call(Drawing.singleFillStyle, gd); + if(ownFillDir) { + // Start each segment on the axis so gaps stay empty. + transition(ownFillEl3).attr('d', fillpaths.join('')) + .call(Drawing.singleFillStyle, gd); - // create hover polygons that extend to the axis as well. - thisPolygons = makePolygonsToPrevious(null); // polygon to axis - } else { - // fill to self: just join the path to itself - transition(ownFillEl3).attr('d', fullpath + 'Z') - .call(Drawing.singleFillStyle, gd); + thisPolygons = makePolygonsToPrevious(null); + } else { + // fill to self: just join the path to itself + transition(ownFillEl3).attr('d', fullpath + 'Z') + .call(Drawing.singleFillStyle, gd); - // and simply emit hover polygons for each segment - thisPolygons = makeSelfPolygons(); - } + // and simply emit hover polygons for each segment + thisPolygons = makeSelfPolygons(); } trace._polygons = thisPolygons; trace._fillElement = ownFillEl3; diff --git a/test/jasmine/tests/scatter_test.js b/test/jasmine/tests/scatter_test.js index 4c27d0a9bb8..b36fa4c71d9 100644 --- a/test/jasmine/tests/scatter_test.js +++ b/test/jasmine/tests/scatter_test.js @@ -908,6 +908,29 @@ describe('end-to-end scatter tests', function() { }).then(done, done.fail); }); + ['tozeroy', 'tozerox'].forEach(fill => { + it(`keeps gaps empty for ${fill} fills`, done => { + const values = [2, 2, null, 2, 2]; + const positions = [0, 1, 2, 3, 4]; + const trace = { + x: fill === 'tozeroy' ? positions : values, + y: fill === 'tozeroy' ? values : positions, + fill + }; + + Plotly.newPlot(gd, [trace]).then(() => { + const path = d3Select(gd).select('.scatterlayer .js-fill').attr('d'); + expect((path.match(/M/g) || []).length).toBe(2); + expect((path.match(/Z/g) || []).length).toBe(2); + return Plotly.restyle(gd, 'connectgaps', true); + }).then(() => { + const path = d3Select(gd).select('.scatterlayer .js-fill').attr('d'); + expect((path.match(/M/g) || []).length).toBe(1); + expect((path.match(/Z/g) || []).length).toBe(1); + }).then(done, done.fail); + }); + }); + it('clears fills tonext when either trace is emptied out', function(done) { var trace0 = {y: [1, 3, 5, 7]}; var trace1 = {y: [1, 2, 3, 4], line: {width: 0}, mode: 'lines'}; From f57f3a53cae4d05ce5ed5f1bf66595e2f2fe8864 Mon Sep 17 00:00:00 2001 From: Walker McHugh <54991626+walkermchugh@users.noreply.github.com> Date: Wed, 21 Oct 2026 05:52:59 -0400 Subject: [PATCH 2/6] Preserve to-zero fill gaps through animation and marker backoff Keep logical fill segments intact so marker backoff does not create slots. Prevent incompatible path interpolation from painting existing null gaps, and anchor hover labels to individual filled regions. Cover the behavior with SVG containment and animation regressions. --- draftlogs/PR_NUMBER_fix.md | 2 +- src/traces/scatter/line_points.js | 15 +- src/traces/scatter/plot.js | 76 +++++++-- test/jasmine/tests/scatter_test.js | 241 ++++++++++++++++++++++++++--- 4 files changed, 293 insertions(+), 41 deletions(-) diff --git a/draftlogs/PR_NUMBER_fix.md b/draftlogs/PR_NUMBER_fix.md index b029011ba6b..2866c14f3bf 100644 --- a/draftlogs/PR_NUMBER_fix.md +++ b/draftlogs/PR_NUMBER_fix.md @@ -1 +1 @@ - - Keep to-zero scatter fills separate across missing data [[#PR_NUMBER](https://github.com/plotly/plotly.js/pull/PR_NUMBER)] + - Keep SVG to-zero scatter fills separate across missing data, including animations. Preserve continuous fills with marker backoff and anchor hover labels to each segment [[#PR_NUMBER](https://github.com/plotly/plotly.js/pull/PR_NUMBER)] diff --git a/src/traces/scatter/line_points.js b/src/traces/scatter/line_points.js index 3ae36f952c3..d4eb81b39b9 100644 --- a/src/traces/scatter/line_points.js +++ b/src/traces/scatter/line_points.js @@ -362,6 +362,7 @@ module.exports = function linePoints(d, opts) { clusterStartPt = getPt(i); if(!clusterStartPt) continue; + const segmentStart = i; pti = 0; lastFarPt = null; addPt(clusterStartPt); @@ -457,7 +458,13 @@ module.exports = function linePoints(d, opts) { // to get fills right - repeat what we did at the start if(lastFarPt) updateEdge([lastXEdge || lastFarPt[0], lastYEdge || lastFarPt[1]]); - segments.push(pts.slice(0, pti)); + const segment = pts.slice(0, pti); + if(opts.segmentInfo) { + segment.segmentIndex = segments.length; + segment.startIndex = segmentStart; + segment.endIndex = i; + } + segments.push(segment); } @@ -484,6 +491,12 @@ module.exports = function linePoints(d, opts) { newSegments[n] = [ start, [xy[0], xy[1]] ]; + if(opts.segmentInfo) { + // Marker backoff must not create gaps in the fill. + newSegments[n].segmentIndex = j; + newSegments[n].startIndex = segments[j].startIndex; + newSegments[n].endIndex = segments[j].endIndex; + } } } } diff --git a/src/traces/scatter/plot.js b/src/traces/scatter/plot.js index 5e6c0cd3a43..2c6164762e4 100644 --- a/src/traces/scatter/plot.js +++ b/src/traces/scatter/plot.js @@ -186,6 +186,9 @@ function plotOne(gd, idx, plotinfo, cdscatter, cdscatterAll, element, transition var pathfn, revpathbase, revpathfn; // variables used before and after the data join const fillpaths = []; + const fillends = []; + const filltopology = []; + const ownFillsegments = []; // thisPolygons always contains only the polygons of this trace only // whereas trace._polygons may be extended to include those of the previous @@ -243,7 +246,8 @@ function plotOne(gd, idx, plotinfo, cdscatter, cdscatterAll, element, transition shape: line.shape, backoff: line.backoff, simplify: line.simplify, - fill: trace.fill + fill: trace.fill, + segmentInfo: ownFillEl3 && ownFillDir }); // since we already have the pixel segments here, use them to make @@ -254,9 +258,21 @@ function plotOne(gd, idx, plotinfo, cdscatter, cdscatterAll, element, transition // need to redraw when you change hoveron... fillsegments = new Array(segments.length); var fillsegmentCount = 0; + let previousSegmentIndex; for(i = 0; i < segments.length; i++) { var curpoints; var pts = segments[i]; + if(ownFillEl3 && ownFillDir) { + const segmentIndex = pts.segmentIndex; + if(segmentIndex !== previousSegmentIndex) { + ownFillsegments.push(pts.slice()); + } else { + const ownFillpoints = ownFillsegments[ownFillsegments.length - 1]; + ownFillpoints.push.apply(ownFillpoints, pts); + } + previousSegmentIndex = segmentIndex; + pts.segmentIndex = ownFillsegments.length - 1; + } if(!curpoints || !ownFillDir) { curpoints = pts.slice(); fillsegments[fillsegmentCount] = curpoints; @@ -273,13 +289,21 @@ function plotOne(gd, idx, plotinfo, cdscatter, cdscatterAll, element, transition fillsegments = trace._fillsegments; makeUpdate = function(isEnter) { - return function(pts, segmentIndex) { + return function(pts) { thispath = pathfn(pts); if(ownFillEl3 && ownFillDir) { - const start = pts[0].slice(); + const segmentIndex = pts.segmentIndex; const end = pts[pts.length - 1].slice(); - start[fillAxisIndex] = end[fillAxisIndex] = fillAxisZero; - fillpaths[segmentIndex] = 'M' + end + 'L' + start + 'L' + thispath.slice(1) + 'Z'; + end[fillAxisIndex] = fillAxisZero; + if(fillpaths[segmentIndex]) { + fillpaths[segmentIndex] += `L${thispath.slice(1)}`; + } else { + const start = pts[0].slice(); + start[fillAxisIndex] = fillAxisZero; + fillpaths[segmentIndex] = `M${start}L${thispath.slice(1)}`; + filltopology[segmentIndex] = `${pts.startIndex}:${pts.endIndex}`; + } + fillends[segmentIndex] = `L${end}Z`; } thisrevpath = revpathfn(pts); // side-effect: reverses input // calculate SVG path over all segments for fills @@ -351,15 +375,16 @@ function plotOne(gd, idx, plotinfo, cdscatter, cdscatterAll, element, transition if(!prevFillsegments || prevFillsegments.length === 0) { // if there are no fill segments of a previous trace, stretch the // polygon to the relevant axis - polygons = new Array(fillsegments.length); - for(i = 0; i < fillsegments.length; i++) { - var pt0 = fillsegments[i][0].slice(); - var pt1 = fillsegments[i][fillsegments[i].length - 1].slice(); + const zeroFillsegments = ownFillEl3 && ownFillDir ? ownFillsegments : fillsegments; + polygons = new Array(zeroFillsegments.length); + for(i = 0; i < zeroFillsegments.length; i++) { + const segment = zeroFillsegments[i]; + const pt0 = segment[0].slice(); + const pt1 = segment[segment.length - 1].slice(); pt0[fillAxisIndex] = pt1[fillAxisIndex] = fillAxisZero; - var zeropoints = [pt1, pt0]; - var polypoints = zeropoints.concat(fillsegments[i]); + const polypoints = [pt1, pt0].concat(segment); polygons[i] = polygonTester(polypoints); } } else { @@ -387,9 +412,27 @@ function plotOne(gd, idx, plotinfo, cdscatter, cdscatterAll, element, transition if(ownFillEl3) { ownFillEl3.datum(cdscatter); if(ownFillDir) { - // Start each segment on the axis so gaps stay empty. - transition(ownFillEl3).attr('d', fillpaths.join('')) - .call(Drawing.singleFillStyle, gd); + for(i = 0; i < fillpaths.length; i++) { + fillpaths[i] += fillends[i]; + } + const fillpath = fillpaths.join(''); + const topology = filltopology.join('|'); + const fillNode = ownFillEl3.node(); + const fillSelection = transition(ownFillEl3); + if(hasTransition) { + fillSelection.attrTween('d', () => { + const previousPath = fillNode.getAttribute('d') || ''; + const sameTopology = fillNode._fillTopology === topology && + previousPath.replace(/[^MLHVCSQTAZ]/gi, '') === fillpath.replace(/[^MLHVCSQTAZ]/gi, ''); + fillNode._fillTopology = topology; + // D3 pairs numbers across subpaths when segment boundaries or path commands change. + return sameTopology ? d3.interpolateString(previousPath, fillpath) : () => fillpath; + }); + } else { + fillNode._fillTopology = topology; + fillSelection.attr('d', fillpath); + } + fillSelection.call(Drawing.singleFillStyle, gd); thisPolygons = makePolygonsToPrevious(null); } else { @@ -442,7 +485,10 @@ function plotOne(gd, idx, plotinfo, cdscatter, cdscatterAll, element, transition } trace._prevRevpath = revpath; } else { - if(ownFillEl3) clearFill(ownFillEl3); + if(ownFillEl3 && ownFillDir) { + ownFillEl3.node()._fillTopology = null; + ownFillEl3.interrupt().attr('d', 'M0,0Z'); + } else if(ownFillEl3) clearFill(ownFillEl3); else if(tonext) clearFill(tonext); trace._prevRevpath = null; } diff --git a/test/jasmine/tests/scatter_test.js b/test/jasmine/tests/scatter_test.js index b36fa4c71d9..0330230032b 100644 --- a/test/jasmine/tests/scatter_test.js +++ b/test/jasmine/tests/scatter_test.js @@ -908,26 +908,185 @@ describe('end-to-end scatter tests', function() { }).then(done, done.fail); }); - ['tozeroy', 'tozerox'].forEach(fill => { - it(`keeps gaps empty for ${fill} fills`, done => { - const values = [2, 2, null, 2, 2]; - const positions = [0, 1, 2, 3, 4]; - const trace = { - x: fill === 'tozeroy' ? positions : values, - y: fill === 'tozeroy' ? values : positions, - fill + describe('tozero fill gaps', () => { + const layout = { + width: 600, height: 400, + margin: {l: 60, r: 30, t: 40, b: 50}, + xaxis: {range: [0, 8]}, yaxis: {range: [0, 4]}, + showlegend: false + }; + + const contains = (fill, position, value) => { + const path = gd.querySelector('.js-fill'); + const point = path.ownerSVGElement.createSVGPoint(); + point.x = gd._fullLayout.xaxis.c2p(fill === 'tozeroy' ? position : value); + point.y = gd._fullLayout.yaxis.c2p(fill === 'tozeroy' ? value : position); + return path.isPointInFill(point); + }; + + const makeTrace = (fill, positions, values, line = {}) => ({ + x: fill === 'tozeroy' ? positions : values, + y: fill === 'tozeroy' ? values : positions, + fill, mode: 'lines', line + }); + + ['tozeroy', 'tozerox'].forEach(fill => { + const positionAxis = fill === 'tozeroy' ? 'xaxis' : 'yaxis'; + const valueAxis = fill === 'tozeroy' ? 'yaxis' : 'xaxis'; + const valueKey = fill === 'tozeroy' ? 'y' : 'x'; + const makeLayout = () => { + const out = Lib.extendDeep({}, layout); + out[positionAxis].range = [0, 8]; + out[valueAxis].range = [0, 4]; + return out; }; - Plotly.newPlot(gd, [trace]).then(() => { - const path = d3Select(gd).select('.scatterlayer .js-fill').attr('d'); - expect((path.match(/M/g) || []).length).toBe(2); - expect((path.match(/Z/g) || []).length).toBe(2); - return Plotly.restyle(gd, 'connectgaps', true); - }).then(() => { - const path = d3Select(gd).select('.scatterlayer .js-fill').attr('d'); - expect((path.match(/M/g) || []).length).toBe(1); - expect((path.match(/Z/g) || []).length).toBe(1); - }).then(done, done.fail); + ['linear', 'hv', 'vh', 'hvh', 'vhv', 'spline'].forEach(shape => { + it(`keeps ${fill} ${shape} gaps empty through restyle and axis changes`, async () => { + const trace = makeTrace(fill, [1, 1.5, 2, 3, 4, 4.5, 5], + [2, 2.4, 2, null, 2, 2.6, 2], {shape, simplify: false}); + for(const axisMode of ['linear', 'reversed', 'log-value', 'log-position']) { + const plotLayout = makeLayout(); + if(axisMode === 'reversed') { + plotLayout[positionAxis].range.reverse(); + plotLayout[valueAxis].range.reverse(); + } else if(axisMode === 'log-value') { + plotLayout[valueAxis] = {type: 'log', range: [-1, 1]}; + } else if(axisMode === 'log-position') { + plotLayout[positionAxis] = {type: 'log', range: [0, 1]}; + } + await Plotly.newPlot(gd, [trace], plotLayout); + for(const connectgaps of [false, true, false]) { + await Plotly.restyle(gd, 'connectgaps', connectgaps); + expect(contains(fill, 1.5, 1)).toBe(true, axisMode); + expect(contains(fill, 3, 1)).toBe(connectgaps, axisMode); + expect(contains(fill, 4.5, 1)).toBe(true, axisMode); + } + } + }); + }); + + it(`keeps isolated points and edge gaps empty for ${fill}`, async () => { + await Plotly.newPlot(gd, [makeTrace(fill, [0, 1, 2, 3, 4, 5, 6], + [null, 2, null, 2, 2, null, null])], makeLayout()); + for(const position of [0.5, 1, 2, 5]) { + expect(contains(fill, position, 1)).toBe(false, `position ${position}`); + } + expect(contains(fill, 3.5, 1)).toBe(true); + }); + + it(`does not split ${fill} at marker backoff`, async () => { + const trace = makeTrace(fill, [0, 1, 2, 3, 4, 5, 6], + [2, 3, 2, null, 2, 3, 2]); + trace.mode = 'lines+markers'; + trace.marker = {symbol: 'arrow', size: 20, angleref: 'previous'}; + await Plotly.newPlot(gd, [trace], makeLayout()); + for(const backoff of [10, 'auto', 0]) { + await Plotly.restyle(gd, 'line.backoff', backoff); + expect(contains(fill, 0.95, 1)).toBe(true, `backoff ${backoff}`); + expect(contains(fill, 4.95, 1)).toBe(true, `backoff ${backoff}`); + expect(contains(fill, 3, 1)).toBe(false, `backoff ${backoff}`); + } + }); + + it(`keeps ${fill} gaps empty when simplification changes path commands`, async () => { + const positions = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; + const plotLayout = makeLayout(); + plotLayout[positionAxis].range = [0, 10]; + await Plotly.newPlot(gd, [makeTrace(fill, positions, + [2, 2, 2, null, 2, 2, 2, null, 2, 2, 2])], plotLayout); + const commands = gd.querySelector('.js-fill').getAttribute('d').replace(/[^MLZ]/g, ''); + let animationFrame; + let paintedGap = false; + const sample = () => { + paintedGap = paintedGap || contains(fill, 3, 1) || contains(fill, 7, 1); + animationFrame = requestAnimationFrame(sample); + }; + animationFrame = requestAnimationFrame(sample); + try { + await Plotly.animate(gd, {data: [{[valueKey]: + [2, 3, 2, null, 2, 2, 2, null, 2, 2, 2] + }], traces: [0]}, { + transition: {duration: 120, easing: 'linear'}, + frame: {duration: 150, redraw: false}, mode: 'immediate' + }); + } finally { + cancelAnimationFrame(animationFrame); + } + expect(gd.querySelector('.js-fill').getAttribute('d').replace(/[^MLZ]/g, '')).not.toBe(commands); + expect(paintedGap).toBe(false); + }); + + it(`does not interpolate ${fill} between different runs with matching path commands`, async () => { + const positions = [0, 1, 2, 2.5, 3.5, 4, 5, 6, 7, 9, 10]; + const plotLayout = makeLayout(); + plotLayout[positionAxis].range = [0, 10]; + const trace = makeTrace(fill, positions, + [2, 2, null, null, null, null, 2, 2, null, 2, 2], {simplify: false}); + await Plotly.newPlot(gd, [trace], plotLayout); + let animationFrame; + let paintedGap = false; + const sample = () => { + paintedGap = paintedGap || contains(fill, 4, 1); + animationFrame = requestAnimationFrame(sample); + }; + animationFrame = requestAnimationFrame(sample); + try { + await Plotly.animate(gd, {data: [{[valueKey]: + [2, 2, null, 2, 2, null, null, null, null, 2, 2] + }], traces: [0]}, { + transition: {duration: 120, easing: 'linear'}, + frame: {duration: 150, redraw: false}, mode: 'immediate' + }); + } finally { + cancelAnimationFrame(animationFrame); + } + expect(paintedGap).toBe(false); + }); + + ['linear', 'hv', 'vh', 'hvh', 'vhv', 'spline'].forEach(shape => { + it(`keeps ${fill} ${shape} gaps empty during changes to segment topology`, async () => { + const frames = [ + [2, 2, 2, null, 2, 2, null, 2, 2], + [2, null, 2, null, 2, 2, null, 2, 2], + [2, 2, null, null, 2, 2, null, 2, 2], + [2, 2, 2, null, 2, 2, null, 2, 2], + [3, 3, 3, null, 3, 3, null, 3, 3], + [null, null, null, null, null, null, null, null, null], + [2, 2, 2, null, 2, 2, null, 2, 2] + ]; + await Plotly.newPlot(gd, [makeTrace(fill, [0, 1, 2, 3, 4, 5, 6, 7, 8], + frames[0], {shape, simplify: false})], makeLayout()); + for(let i = 1; i < frames.length; i++) { + let samples = 0; + let paintedGap = false; + let intermediate = false; + let animationFrame; + const sample = () => { + samples++; + paintedGap = paintedGap || contains(fill, 3, 1) || contains(fill, 6, 1); + intermediate = intermediate || contains(fill, 4.5, 2.2) && !contains(fill, 4.5, 2.8); + animationFrame = requestAnimationFrame(sample); + }; + animationFrame = requestAnimationFrame(sample); + try { + await Plotly.animate(gd, {data: [{[valueKey]: frames[i]}], traces: [0]}, { + transition: {duration: 120, easing: 'linear'}, + frame: {duration: 150, redraw: false}, mode: 'immediate' + }); + } finally { + cancelAnimationFrame(animationFrame); + } + expect(samples).toBeGreaterThan(0); + expect(paintedGap).toBe(false, `frame ${i}`); + expect(contains(fill, 3, 1)).toBe(false); + expect(contains(fill, 6, 1)).toBe(false); + expect(contains(fill, 4.5, 1)).toBe(i !== 5); + if(i === 4) expect(intermediate).toBe(true, 'smooth height change'); + } + }); + }); + }); }); @@ -1518,6 +1677,32 @@ describe('scatter hoverFills', function() { }); } + ['tozeroy', 'tozerox'].forEach(fill => { + it(`anchors ${fill} hover labels inside each filled segment`, async () => { + const gd = createGraphDiv(); + const positions = [0, 1, 2, 3, 4]; + const values = [2, 2, null, 2, 2]; + await Plotly.newPlot(gd, [{ + x: fill === 'tozeroy' ? positions : values, + y: fill === 'tozeroy' ? values : positions, + fill, hoveron: 'fills', mode: 'lines' + }], { + width: 600, height: 400, margin: {l: 60, r: 30, t: 40, b: 50}, + xaxis: {range: [0, 4]}, yaxis: {range: [0, 4]} + }); + for(const position of [0.5, 3.5]) { + const point = _hover(gd, fill === 'tozeroy' ? position : 1, + fill === 'tozeroy' ? 1 : position, 'closest', 'xy')[0]; + expect(point).toBeTruthy(); + const axis = gd._fullLayout[fill === 'tozeroy' ? 'xaxis' : 'yaxis']; + const center = fill === 'tozeroy' ? (point.x0 + point.x1) / 2 : (point.y0 + point.y1) / 2; + expect(axis.p2c(center)).toBeCloseTo(position, 6); + } + expect(_hover(gd, fill === 'tozeroy' ? 2 : 1, + fill === 'tozeroy' ? 1 : 2, 'closest', 'xy')[0]).toBeFalsy(); + }); + }); + it('should correctly detect the fill that is hovered over for self and next fills', function(done) { var gd = createGraphDiv(); var mock = Lib.extendDeep({}, require('../../image/mocks/scatter_fill_self_next')); @@ -1552,7 +1737,7 @@ describe('scatter hoverFills', function() { .then(done, done.fail); }); - it('should correctly detect the fill that is hovered over for tozeroy and tonexty fills', function(done) { + it('should correctly detect the fill that is hovered over for tozeroy fills', done => { var gd = createGraphDiv(); var mock = Lib.extendDeep({}, require('../../image/mocks/scatter_fill_corner_cases')); @@ -1560,10 +1745,10 @@ describe('scatter hoverFills', function() { var testPoints = [ // all the following points should be in fill region of corresponding tozeroy traces 0-4 [], // single point has no "fill" when using SVG element containment tests - [[0.1, 0.9], [0.1, 0.8], [1.5, 0.9], [1.5, 1.04], [2, 0.8], [2, 1.09], [3, 0.8]], - [[0.1, 0.75], [0.1, 0.61], [1.01, 0.501], [1.5, 0.8], [1.5, 0.55], [2, 0.74], [2, 0.55], [3, 0.74], [3, 0.51]], - [[0.1, 0.599], [0.1, 0.5], [0.1, 0.3], [0.99, 0.59], [1, 0.49], [1, 0.36], [1.5, 0.26], [2, 0.49], [2, 0.16], [3, 0.49], [3, 0.26]], - [[0.1, 0.25], [0.1, 0.1], [1, 0.34], [1.5, 0.24], [2, 0.14], [3, 0.24], [3, 0.1]], + [[1.5, 0.9], [1.5, 1.04], [2, 0.8], [2, 1.09], [3, 0.8]], + [[0.1, 0.75], [0.1, 0.61], [2, 0.74], [2, 0.55], [3, 0.74], [3, 0.51]], + [[0.1, 0.599], [0.1, 0.5], [0.1, 0.3], [0.99, 0.59], [1, 0.49], [1, 0.36], [1.5, 0.26], [2, 0.49], [2, 0.16]], + [], // isolated points do not enclose a fill region ]; var outsidePoints = [ // all these should not result in a hover detection, for any trace @@ -1599,11 +1784,19 @@ describe('scatter hoverFills', function() { } } + const gapPoints = [ + [1, 0.5, 0.8], [2, 1.25, 0.5], [2, 1.75, 0.5], + [3, 2.5, 0.3], [4, 0.5, 0.1], [4, 1.5, 0.1], [4, 2.5, 0.1] + ]; + for(const [traceIndex, x, y] of gapPoints) { + expect(_hover(gd, x, y, 'x', 'xy')[traceIndex]).toBeFalsy(`gap in trace ${traceIndex}`); + } + for(j = 0; j < outsidePoints.length; j++) { testCoords = outsidePoints[j]; pts = _hover(gd, testCoords[0], testCoords[1], 'x', 'xy'); for(k = 0; k < testPoints.length; k++) { - expect(pts[i]).toBeFalsy( + expect(pts[traceOffset + k]).toBeFalsy( 'trace detected for outside point ' + testCoords.join(',') + ', got ' + (traceOffset + k) ); } From 7c6b0efdead89a3cbb457a72719da64969ec36c0 Mon Sep 17 00:00:00 2001 From: Walker McHugh <54991626+walkermchugh@users.noreply.github.com> Date: Wed, 21 Oct 2026 05:56:36 -0400 Subject: [PATCH 3/6] Link the fill-gap draftlog to PR 8140 --- draftlogs/{PR_NUMBER_fix.md => 8140_fix.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename draftlogs/{PR_NUMBER_fix.md => 8140_fix.md} (53%) diff --git a/draftlogs/PR_NUMBER_fix.md b/draftlogs/8140_fix.md similarity index 53% rename from draftlogs/PR_NUMBER_fix.md rename to draftlogs/8140_fix.md index 2866c14f3bf..17f414406f0 100644 --- a/draftlogs/PR_NUMBER_fix.md +++ b/draftlogs/8140_fix.md @@ -1 +1 @@ - - Keep SVG to-zero scatter fills separate across missing data, including animations. Preserve continuous fills with marker backoff and anchor hover labels to each segment [[#PR_NUMBER](https://github.com/plotly/plotly.js/pull/PR_NUMBER)] + - Keep SVG to-zero scatter fills separate across missing data, including animations. Preserve continuous fills with marker backoff and anchor hover labels to each segment [[#8140](https://github.com/plotly/plotly.js/pull/8140)] From 9da78de3dbfbfa58bb691772d512c0853b8cb939 Mon Sep 17 00:00:00 2001 From: walkermchugh <54991626+walkermchugh@users.noreply.github.com> Date: Thu, 22 Oct 2026 07:35:27 -0400 Subject: [PATCH 4/6] Update scatter fill corner cases baseline from CI The to-zero fills now stop at missing data. Use the Ubuntu CI render so the image test checks that geometry. --- .../baselines/scatter_fill_corner_cases.png | Bin 44142 -> 42645 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/scatter_fill_corner_cases.png b/test/image/baselines/scatter_fill_corner_cases.png index 51a7f95df3d7ca8557399cb6850eba31a8ef9f50..de3f33b634d6bcd588c5b6fe5fb5fa86ce50aa35 100644 GIT binary patch literal 42645 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 L_n=O$wl(R00yNtU literal 44142 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 From 9a01c4ce7ddb15bc31c9f9930e8c1ea8441c22b2 Mon Sep 17 00:00:00 2001 From: walkermchugh <54991626+walkermchugh@users.noreply.github.com> Date: Fri, 23 Oct 2026 06:02:37 -0400 Subject: [PATCH 5/6] Keep map Jasmine tests stable across CARTO style updates Check trace placement against the loaded basemap instead of fixed layer counts and provider metadata. Target wheel events at the map canvas and accept either first GeoJSON fetch failure. --- test/jasmine/tests/choroplethmap_test.js | 51 +++--- test/jasmine/tests/densitymap_test.js | 52 ++++--- test/jasmine/tests/map_test.js | 188 +++++++++++------------ 3 files changed, 149 insertions(+), 142 deletions(-) diff --git a/test/jasmine/tests/choroplethmap_test.js b/test/jasmine/tests/choroplethmap_test.js index 5e587505f67..d04eeb753bd 100644 --- a/test/jasmine/tests/choroplethmap_test.js +++ b/test/jasmine/tests/choroplethmap_test.js @@ -685,11 +685,13 @@ describe('Test choroplethmap interactions:', function() { }); it('@gl should be able to add and remove traces', function(done) { - function _assert(msg, exp) { + let initialLayerCount; + + function _assert(msg, expectedCount) { var map = gd._fullLayout.map._subplot.map; var layers = map.getStyle().layers; - expect(layers.length).toBe(exp.layerCnt, 'total # of layers |' + msg); + expect(layers.length).toBe(expectedCount, 'total # of layers |' + msg); } var trace0 = { @@ -713,25 +715,37 @@ describe('Test choroplethmap interactions:', function() { {} ) .then(function() { - _assert('base', { layerCnt: 97 }); + const layers = gd._fullLayout.map._subplot.map.getStyle().layers; + initialLayerCount = layers.length; + const traceLayers = layers.filter(layer => layer.id.indexOf('plotly-trace-layer-') === 0); + expect(traceLayers.length).toBe(4); }) .then(function() { return Plotly.deleteTraces(gd, [0]); }) .then(function() { - _assert('w/o trace0', { layerCnt: 95 }); + _assert('w/o trace0', initialLayerCount - 2); }) .then(function() { return Plotly.addTraces(gd, [trace0]); }) .then(function() { - _assert('after adding trace0', { layerCnt: 97 }); + _assert('after adding trace0', initialLayerCount); }) .then(done, done.fail); }); it('@gl should be able to restyle *below*', function(done) { + const traceIds = ['plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line']; + let baseLayerIds; + function getLayerIds() { - var subplot = gd._fullLayout.map._subplot; - var layers = subplot.map.getStyle().layers; - var layerIds = layers.map(function(l) { return l.id; }); - return layerIds; + const layers = gd._fullLayout.map._subplot.map.getStyle().layers; + return layers.map(layer => layer.id); + } + + function assertLayers(message, belowId) { + const expected = baseLayerIds.slice(); + const index = belowId ? expected.indexOf(belowId) : expected.length; + expect(index).not.toBe(-1, message + ' anchor'); + expected.splice(index, 0, ...traceIds); + expect(getLayerIds()).withContext(message).toEqual(expected); } Plotly.newPlot(gd, [{ @@ -742,27 +756,20 @@ describe('Test choroplethmap interactions:', function() { uid: 'a' }], {}, {}) .then(function() { - expect(getLayerIds()).withContext('default *below*').toEqual([ - 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber' - ]); + baseLayerIds = getLayerIds().filter(id => traceIds.indexOf(id) === -1); + assertLayers('default *below*', 'place_hamlet'); }) .then(function() { return Plotly.restyle(gd, 'below', ''); }) .then(function() { - expect(getLayerIds()).withContext('*below* set to \'\'').toEqual([ - 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber', 'plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line' - ]); + assertLayers('*below* set to top', ''); }) - .then(function() { return Plotly.restyle(gd, 'below', 'place_label_other'); }) + .then(function() { return Plotly.restyle(gd, 'below', 'place_hamlet'); }) .then(function() { - expect(getLayerIds()).withContext('*below* set to same base layer').toEqual([ - 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber', 'plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line' - ]); + assertLayers('*below* set to place_hamlet', 'place_hamlet'); }) .then(function() { return Plotly.restyle(gd, 'below', null); }) .then(function() { - expect(getLayerIds()).withContext('back to default *below*').toEqual([ - 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber' - ]); + assertLayers('back to default *below*', 'place_hamlet'); }) .then(done, done.fail); }, 5 * jasmine.DEFAULT_TIMEOUT_INTERVAL); diff --git a/test/jasmine/tests/densitymap_test.js b/test/jasmine/tests/densitymap_test.js index 77366af55b2..dd4ac3852a7 100644 --- a/test/jasmine/tests/densitymap_test.js +++ b/test/jasmine/tests/densitymap_test.js @@ -389,11 +389,13 @@ describe('Test densitymap interactions:', function() { }); it('@gl should be able to add and remove traces', function(done) { - function _assert(msg, exp) { + let initialLayerCount; + + function _assert(msg, expectedCount) { var map = gd._fullLayout.map._subplot.map; var layers = map.getStyle().layers; - expect(layers.length).toBe(exp.layerCnt, 'total # of layers |' + msg); + expect(layers.length).toBe(expectedCount, 'total # of layers |' + msg); } var trace0 = { @@ -416,25 +418,37 @@ describe('Test densitymap interactions:', function() { {} ) .then(function() { - _assert('base', { layerCnt: 95 }); + const layers = gd._fullLayout.map._subplot.map.getStyle().layers; + initialLayerCount = layers.length; + const traceLayers = layers.filter(layer => layer.id.indexOf('plotly-trace-layer-') === 0); + expect(traceLayers.length).toBe(2); }) .then(function() { return Plotly.deleteTraces(gd, [0]); }) .then(function() { - _assert('w/o trace0', { layerCnt: 94 }); + _assert('w/o trace0', initialLayerCount - 1); }) .then(function() { return Plotly.addTraces(gd, [trace0]); }) .then(function() { - _assert('after adding trace0', { layerCnt: 95 }); + _assert('after adding trace0', initialLayerCount); }) .then(done, done.fail); }); it('@gl should be able to restyle *below*', function(done) { + const traceId = 'plotly-trace-layer-a-heatmap'; + let baseLayerIds; + function getLayerIds() { - var subplot = gd._fullLayout.map._subplot; - var layers = subplot.map.getStyle().layers; - var layerIds = layers.map(function(l) { return l.id; }); - return layerIds; + const layers = gd._fullLayout.map._subplot.map.getStyle().layers; + return layers.map(layer => layer.id); + } + + function assertLayers(message, belowId) { + const expected = baseLayerIds.slice(); + const index = belowId ? expected.indexOf(belowId) : expected.length; + expect(index).not.toBe(-1, message + ' anchor'); + expected.splice(index, 0, traceId); + expect(getLayerIds()).withContext(message).toEqual(expected); } Plotly.newPlot(gd, [{ @@ -445,31 +459,25 @@ describe('Test densitymap interactions:', function() { uid: 'a' }], {}, {}) .then(function() { - expect(getLayerIds()).withContext('default *below*').toEqual([ - 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'plotly-trace-layer-a-heatmap', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber' - ]); + baseLayerIds = getLayerIds().filter(id => id !== traceId); + assertLayers('default *below*', 'waterway_label'); }) .then(function() { return Plotly.restyle(gd, 'below', ''); }) .then(function() { - expect(getLayerIds()).withContext('default *below*').toEqual([ - 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber', 'plotly-trace-layer-a-heatmap' - ]); + assertLayers('*below* set to top', ''); }) - .then(function() { return Plotly.restyle(gd, 'below', 'place_label_other'); }) + .then(function() { return Plotly.restyle(gd, 'below', 'waterway_label'); }) .then(function() { - expect(getLayerIds()).withContext('default *below*').toEqual([ - 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber', 'plotly-trace-layer-a-heatmap' - ]); + assertLayers('*below* set to waterway_label', 'waterway_label'); }) .then(function() { return Plotly.restyle(gd, 'below', null); }) .then(function() { - expect(getLayerIds()).withContext('back to default *below*').toEqual([ - 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'plotly-trace-layer-a-heatmap', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber' - ]); + assertLayers('back to default *below*', 'waterway_label'); }) .then(done, done.fail); }, 5 * jasmine.DEFAULT_TIMEOUT_INTERVAL); + it('@gl should be able to restyle from and to *scattermap*', function(done) { function _assert(msg, exp) { var traceHash = gd._fullLayout.map._subplot.traceHash; diff --git a/test/jasmine/tests/map_test.js b/test/jasmine/tests/map_test.js index 376ac4ca0d9..836cfe12a98 100644 --- a/test/jasmine/tests/map_test.js +++ b/test/jasmine/tests/map_test.js @@ -515,16 +515,19 @@ describe('map plots', function() { expect(mapInfo.style.name).toEqual(style); } - assertLayout('Dark Matter'); + const darkStyle = getMapInfo(gd).style.name; + expect(darkStyle).toBeTruthy(); Plotly.relayout(gd, 'map.style', 'carto-positron') .then(function() { - assertLayout('Positron'); + const lightStyle = getMapInfo(gd).style.name; + expect(lightStyle).toBeTruthy(); + expect(lightStyle).not.toEqual(darkStyle); return Plotly.relayout(gd, 'map.style', 'carto-darkmatter'); }) .then(function() { - assertLayout('Dark Matter'); + assertLayout(darkStyle); }) .then(done, done.fail); }, LONG_TIMEOUT_INTERVAL); @@ -1161,7 +1164,10 @@ describe('map plots', function() { relayoutCnt = 0; return new Promise(function(resolve) { mouseEvent('mousemove', pointPos[0], pointPos[1]); - mouseEvent('scroll', pointPos[0], pointPos[1], {deltaY: -400}); + mouseEvent('scroll', pointPos[0], pointPos[1], { + deltaY: -400, + element: getMapInfo(gd).map.getCanvas() + }); setTimeout(resolve, 500); }); } @@ -1220,16 +1226,23 @@ describe('map plots', function() { } } + function assertCartoAttribution(s) { + const links = s[0][0].getElementsByTagName('a'); + const hrefs = Array.from(links, link => link.href); + + expect(s.size()).toBe(1); + expect(s.text()).toContain('CARTO'); + expect(s.text()).toContain('OpenStreetMap'); + expect(hrefs.length).toBe(2); + expect(hrefs.some(href => href.indexOf('carto.com/') !== -1)).toBe(true); + expect(hrefs.some(href => href.indexOf('openstreetmap.org/') !== -1)).toBe(true); + } + it('@gl should be displayed for style "Carto"', function(done) { Plotly.newPlot(gd, [{type: 'scattermap'}], {map: {style: 'carto-darkmatter'}}) .then(function() { var s = d3SelectAll('.maplibregl-ctrl-attrib'); - expect(s.size()).toBe(1); - expect(s.text()).toEqual('© CARTO, © OpenStreetMap contributors'); - assertLinks(s, [ - 'https://carto.com/about-carto/', - 'http://www.openstreetmap.org/about/' - ]); + assertCartoAttribution(s); }) .then(done, done.fail); }); @@ -1251,12 +1264,7 @@ describe('map plots', function() { Plotly.newPlot(gd, [{type: 'scattermap'}], {map: {style: 'basic'}}) .then(function() { var s = d3SelectAll('.maplibregl-ctrl-attrib'); - expect(s.size()).toBe(1); - expect(s.text()).toEqual('© CARTO, © OpenStreetMap contributors'); - assertLinks(s, [ - 'https://carto.com/about-carto/', - 'http://www.openstreetmap.org/about/', - ]); + assertCartoAttribution(s); }) .then(done, done.fail); }); @@ -1327,7 +1335,9 @@ describe('map plots', function() { .then(function() { var s = d3SelectAll('.maplibregl-ctrl-attrib'); expect(s.size()).toBe(1); - expect(s.text()).toEqual([XSS + attr, '© CARTO, © OpenStreetMap contributors'].join(' | ')); + expect(s.text()).toContain(XSS + attr + ' | '); + expect(s.text()).toContain('CARTO'); + expect(s.text()).toContain('OpenStreetMap'); expect(s.html().indexOf('')).toBe(-1); expect(s.html().indexOf('<img src=x onerror="alert(XSS);">')).not.toBe(-1); }) @@ -1624,17 +1634,27 @@ describe('test map trace/layout *below* interactions', function() { } it('@gl should be able to update *below* - scattermap + layout layer case', function(done) { - function _assert(msg, exp) { - var layersIds = getLayerIds(); - var tracePrefix = 'plotly-trace-layer-' + gd._fullData[0].uid; + const traceIds = [ + 'plotly-trace-layer-a-fill', + 'plotly-trace-layer-a-line', + 'plotly-trace-layer-a-circle', + 'plotly-trace-layer-a-symbol' + ]; + let baseLayerIds; + let layoutLayerId; + + function assertLayers(message, traceBelow, layoutBelow, layoutFirst) { + const expected = baseLayerIds.slice(); + const waterIndex = expected.indexOf('water'); + expect(waterIndex).not.toBe(-1, message + ' water anchor'); - expect(layersIds.indexOf(tracePrefix + '-fill')).toBe(exp.trace[0], msg + '| fill'); - expect(layersIds.indexOf(tracePrefix + '-line')).toBe(exp.trace[1], msg + '| line'); - expect(layersIds.indexOf(tracePrefix + '-circle')).toBe(exp.trace[2], msg + '| circle'); - expect(layersIds.indexOf(tracePrefix + '-symbol')).toBe(exp.trace[3], msg + '| symbol'); + if (layoutBelow === 'water') expected.splice(waterIndex, 0, layoutLayerId); + if (traceBelow === 'water') expected.splice(waterIndex, 0, ...traceIds); + if (layoutBelow === 'top' && layoutFirst) expected.push(layoutLayerId); + if (traceBelow === 'top') expected.push(...traceIds); + if (layoutBelow === 'top' && !layoutFirst) expected.push(layoutLayerId); - var layoutLayerId = ['plotly-layout-layer', gd._fullLayout._uid, 'map-0'].join('-'); - expect(layersIds.indexOf(layoutLayerId)).toBe(exp.layout, msg + '| layout layer'); + expect(getLayerIds()).withContext(message).toEqual(expected); } Plotly.newPlot(gd, [{ @@ -1659,94 +1679,77 @@ describe('test map trace/layout *below* interactions', function() { } }) .then(function() { - _assert('default *below*', { - trace: [94, 95, 96, 97], - layout: 9 - }); + baseLayerIds = getLayerIds().filter(id => id.indexOf('plotly-') !== 0); + layoutLayerId = ['plotly-layout-layer', gd._fullLayout._uid, 'map-0'].join('-'); + assertLayers('default *below*', 'top', 'water'); }) .then(function() { return Plotly.relayout(gd, 'map.layers[0].below', 'traces'); }) .then(function() { - _assert('with layout layer *below:traces*', { - trace: [94, 95, 96, 97], - layout: 93 - }); + assertLayers('layout layer *below:traces*', 'top', 'top', true); }) .then(function() { return Plotly.relayout(gd, 'map.layers[0].below', null); }) .then(function() { - _assert('back to default *below* (1)', { - trace: [93, 94, 95, 96], - layout: 97 - }); + assertLayers('back to default *below* (1)', 'top', 'top'); }) .then(function() { return Plotly.restyle(gd, 'below', ''); }) .then(function() { - _assert('with trace *below:""*', { - trace: [94, 95, 96, 97], - layout: 93 - }); + assertLayers('trace *below:""*', 'top', 'top', true); }) .then(function() { return Plotly.restyle(gd, 'below', null); }) .then(function() { - _assert('back to default *below* (2)', { - trace: [93, 94, 95, 96], - layout: 97 - }); + assertLayers('back to default *below* (2)', 'top', 'top'); }) .then(function() { return Plotly.restyle(gd, 'below', 'water'); }) .then(function() { - _assert('with trace *below:water*', { - trace: [9, 10, 11, 12], - layout: 97 - }); + assertLayers('trace *below:water*', 'water', 'top'); }) .then(function() { return Plotly.relayout(gd, 'map.layers[0].below', 'water'); }) .then(function() { - _assert('with trace AND layout layer *below:water*', { - trace: [9, 10, 11, 12], - layout: 13 - }); + assertLayers('trace and layout layer *below:water*', 'water', 'water'); }) .then(function() { return Plotly.relayout(gd, 'map.layers[0].below', ''); }) .then(function() { - _assert('with trace *below:water* and layout layer *below:""*', { - trace: [9, 10, 11, 12], - layout: 97 - }); + assertLayers('trace *below:water* and layout layer at top', 'water', 'top'); }) .then(function() { return Plotly.restyle(gd, 'below', ''); }) .then(function() { - _assert('with trace AND layout layer *below:water*', { - trace: [93, 94, 95, 96], - layout: 97 - }); + assertLayers('trace and layout layer at top', 'top', 'top'); }) .then(function() { return Plotly.update(gd, {below: null}, {'map.layers[0].below': null}); }) .then(function() { - _assert('back to default *below* (3)', { - trace: [93, 94, 95, 96], - layout: 97 - }); + assertLayers('back to default *below* (3)', 'top', 'top'); }) .then(done, done.fail); }, 8 * jasmine.DEFAULT_TIMEOUT_INTERVAL); it('@gl should be able to update *below* - scattermap + choroplethmap + densitymap case', function(done) { - function _assert(msg, exp) { - var layersIds = getLayerIds(); - var tracePrefix = 'plotly-trace-layer-'; - - var scatterPrefix = tracePrefix + 'scatter'; - expect(layersIds.indexOf(scatterPrefix + '-fill')).toBe(exp.scatter[0], msg + '| scatter fill'); - expect(layersIds.indexOf(scatterPrefix + '-line')).toBe(exp.scatter[1], msg + '| scatter line'); - expect(layersIds.indexOf(scatterPrefix + '-circle')).toBe(exp.scatter[2], msg + '| scatter circle'); - expect(layersIds.indexOf(scatterPrefix + '-symbol')).toBe(exp.scatter[3], msg + '| scatter symbol'); - - var densityPrefix = tracePrefix + 'density'; - expect(layersIds.indexOf(densityPrefix + '-heatmap')).toBe(exp.density[0], msg + '| density heatmap'); + const scatterIds = [ + 'plotly-trace-layer-scatter-fill', + 'plotly-trace-layer-scatter-line', + 'plotly-trace-layer-scatter-circle', + 'plotly-trace-layer-scatter-symbol' + ]; + const densityId = 'plotly-trace-layer-density-heatmap'; + const choroplethIds = [ + 'plotly-trace-layer-choropleth-fill', + 'plotly-trace-layer-choropleth-line' + ]; + let baseLayerIds; - var choroplethPrefix = tracePrefix + 'choropleth'; - expect(layersIds.indexOf(choroplethPrefix + '-fill')).toBe(exp.choropleth[0], msg + '| choropleth fill'); - expect(layersIds.indexOf(choroplethPrefix + '-line')).toBe(exp.choropleth[1], msg + '| choropleth line'); + function assertLayers(message, allAtTop) { + const expected = baseLayerIds.slice(); + if (allAtTop) { + expected.push(...choroplethIds, densityId, ...scatterIds); + } else { + const waterwayLabelIndex = expected.indexOf('waterway_label'); + expect(waterwayLabelIndex).not.toBe(-1, message + ' waterway_label anchor'); + expected.splice(waterwayLabelIndex, 0, densityId); + const placeHamletIndex = expected.indexOf('place_hamlet'); + expect(placeHamletIndex).not.toBe(-1, message + ' place_hamlet anchor'); + expected.splice(placeHamletIndex, 0, ...choroplethIds); + expected.push(...scatterIds); + } + expect(getLayerIds()).withContext(message).toEqual(expected); } Plotly.newPlot(gd, [{ @@ -1770,27 +1773,16 @@ describe('test map trace/layout *below* interactions', function() { map: {style: 'basic'} }) .then(function() { - _assert('base', { - scatter: [96, 97, 98, 99], - density: [13], - choropleth: [72, 73] - }); + baseLayerIds = getLayerIds().filter(id => id.indexOf('plotly-') !== 0); + assertLayers('base', false); }) .then(function() { return Plotly.restyle(gd, 'below', ''); }) .then(function() { - _assert('all traces *below:""', { - scatter: [96, 97, 98, 99], - density: [95], - choropleth: [93, 94] - }); + assertLayers('all traces *below:""*', true); }) .then(function() { return Plotly.restyle(gd, 'below', null); }) .then(function() { - _assert('back to base', { - scatter: [96, 97, 98, 99], - density: [13], - choropleth: [72, 73] - }); + assertLayers('back to base', false); }) .then(done, done.fail); }, 8 * jasmine.DEFAULT_TIMEOUT_INTERVAL); @@ -1818,7 +1810,7 @@ describe('test map trace/layout *below* interactions', function() { } Lib.warn.calls.reset(); - getLayerIds().slice(94, -1).forEach(function(id) { + getLayerIds().slice(-exp.warnCnt).forEach(function(id) { expect(id.indexOf('plotly-')).toBe(0, 'layer ' + id + ' fallback to top of map'); }); } @@ -1933,7 +1925,7 @@ describe('Test map GeoJSON fetching:', function() { actual = reason; }) .then(function() { - expect(actual).toEqual(new Error('GeoJSON at URL "invalidUrl" does not exist.')); + expect(actual.message).toMatch(/^GeoJSON at URL "invalidUrl(-two)?" does not exist\.$/); expect(window.PlotlyGeoAssets.invalidUrl).toBe(undefined); }) .then(done, done.fail); From 7fa51507105604dc9b9e75d5310d9e0103c28255 Mon Sep 17 00:00:00 2001 From: walkermchugh <54991626+walkermchugh@users.noreply.github.com> Date: Fri, 23 Oct 2026 07:00:05 -0400 Subject: [PATCH 6/6] Update gl2d shape line baseline for SVG fill gaps Use the Ubuntu CI render to capture the corrected SVG to-zero fills across missing data. The scattergl panel remains unchanged. --- test/image/baselines/gl2d_shape_line.png | Bin 81949 -> 80074 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/gl2d_shape_line.png b/test/image/baselines/gl2d_shape_line.png index b51e8978dcb04a60d94d15a638c08f3620b6c643..78df7c257e00ccf08ef4d124932bb0389de67d7a 100644 GIT binary patch literal 80074 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 literal 81949 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