From db44a5bd5e0e4d9ae688ca22c30e2033bdada687 Mon Sep 17 00:00:00 2001 From: John Soklaski <jsokla@microsoft.com> Date: Mon, 29 Feb 2016 13:01:25 -0800 Subject: [PATCH 1/5] Add support for multiple subplots to fx.hover() --- src/plots/cartesian/graph_interact.js | 41 ++++++++++++++++----------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/src/plots/cartesian/graph_interact.js b/src/plots/cartesian/graph_interact.js index c418bcdce6c..082be6e2742 100644 --- a/src/plots/cartesian/graph_interact.js +++ b/src/plots/cartesian/graph_interact.js @@ -313,9 +313,15 @@ function hover(gd, evt, subplot){ var fullLayout = gd._fullLayout, plotinfo = fullLayout._plots[subplot], + //If the user passed in an array of subplots, use those instead of finding overlayed plots + subplots = (Object.prototype.toString.call(subplot) == "[object Array]") ? + subplot : + + subplots = [subplot].concat(plotinfo.overlays + .map(function(pi){ return pi.id; })), + // list of all overlaid subplots to look at - subplots = [subplot].concat(plotinfo.overlays - .map(function(pi){ return pi.id; })), + xaArray = subplots.map(function(spId) { return Plotly.Axes.getFromId(gd, spId, 'x'); }), @@ -533,7 +539,7 @@ function hover(gd, evt, subplot){ }; var hoverLabels = createHoverText(hoverData, labelOpts); - hoverAvoidOverlaps(hoverData, rotateLabels ? xaArray[0] : yaArray[0]); + hoverAvoidOverlaps(hoverData, rotateLabels ? "xa" : "ya"); alignHoverText(hoverLabels, rotateLabels); @@ -866,7 +872,7 @@ function createHoverText(hoverData, opts) { // first create the objects var hoverLabels = container.selectAll('g.hovertext') .data(hoverData,function(d){ - return [d.trace.index,d.index,d.x0,d.y0,d.name,d.attr||''].join(','); + return [d.trace.index,d.index,d.x0,d.y0,d.name,d.attr,d.xa,d.ya ||''].join(','); }); hoverLabels.enter().append('g') .classed('hovertext',true) @@ -969,8 +975,8 @@ function createHoverText(hoverData, opts) { g.select('path') .style({fill:traceColor, stroke:contrastColor}); var tbb = tx.node().getBoundingClientRect(), - htx = xa._offset+(d.x0+d.x1)/2, - hty = ya._offset+(d.y0+d.y1)/2, + htx = d.xa._offset+(d.x0+d.x1)/2, + hty = d.ya._offset+(d.y0+d.y1)/2, dx = Math.abs(d.x1-d.x0), dy = Math.abs(d.y1-d.y0), txTotalWidth = tbb.width+HOVERARROWSIZE+HOVERTEXTPAD+tx2width, @@ -1033,18 +1039,19 @@ function createHoverText(hoverData, opts) { // information then. function hoverAvoidOverlaps(hoverData, ax) { var nummoves = 0, - pmin = ax._offset, - pmax = ax._offset+ax._length, // make groups of touching points pointgroups = hoverData .map(function(d,i){ + var axis = d[ax]; return [{ i: i, dp: 0, pos: d.pos, posref: d.posref, - size: d.by*(ax._id.charAt(0)==='x' ? YFACTOR : 1)/2 + size: d.by*(axis._id.charAt(0)==='x' ? YFACTOR : 1)/2, + pmin: axis._offset, + pmax: axis._offset+axis._length }]; }) .sort(function(a,b){ return a[0].posref-b[0].posref; }), @@ -1060,10 +1067,10 @@ function hoverAvoidOverlaps(hoverData, ax) { maxPt = grp[grp.length-1]; // overlap with the top - positive vals are overlaps - topOverlap = pmin-minPt.pos-minPt.dp+minPt.size; + topOverlap = minPt.pmin-minPt.pos-minPt.dp+minPt.size; // overlap with the bottom - positive vals are overlaps - bottomOverlap = maxPt.pos+maxPt.dp+maxPt.size-pmax; + bottomOverlap = maxPt.pos+maxPt.dp+maxPt.size-minPt.pmax; // check for min overlap first, so that we always // see the largest labels @@ -1087,7 +1094,7 @@ function hoverAvoidOverlaps(hoverData, ax) { var deleteCount = 0; for(i=0; i<grp.length; i++) { pti = grp[i]; - if(pti.pos+pti.dp+pti.size>pmax) deleteCount++; + if(pti.pos+pti.dp+pti.size>minPt.pmax) deleteCount++; } // start by deleting points whose data is off screen @@ -1097,7 +1104,7 @@ function hoverAvoidOverlaps(hoverData, ax) { // pos has already been constrained to [pmin,pmax] // so look for points close to that to delete - if(pti.pos>pmax-1) { + if(pti.pos>minPt.pmax-1) { pti.del = true; deleteCount--; } @@ -1108,7 +1115,7 @@ function hoverAvoidOverlaps(hoverData, ax) { // pos has already been constrained to [pmin,pmax] // so look for points close to that to delete - if(pti.pos<pmin+1) { + if(pti.pos<minPt.pmin+1) { pti.del = true; deleteCount--; @@ -1121,7 +1128,7 @@ function hoverAvoidOverlaps(hoverData, ax) { for(i=grp.length-1; i>=0; i--) { if(deleteCount<=0) break; pti = grp[i]; - if(pti.pos+pti.dp+pti.size>pmax) { + if(pti.pos+pti.dp+pti.size>minPt.pmax) { pti.del = true; deleteCount--; } @@ -1149,7 +1156,9 @@ function hoverAvoidOverlaps(hoverData, ax) { p0 = g0[g0.length-1], p1 = g1[0]; topOverlap = p0.pos+p0.dp+p0.size-p1.pos-p1.dp+p1.size; - if(topOverlap>0.01) { + + //Only group points that lie on the same axes + if(topOverlap>0.01 && (p0.pmin == p1.pmin) && (p0.pmax == p1.pmax)) { // push the new point(s) added to this group out of the way for(j=g1.length-1; j>=0; j--) g1[j].dp += topOverlap; From 7e55391ca98b30c2ad872e6201ed6a8e86feb8c1 Mon Sep 17 00:00:00 2001 From: John Soklaski <jsokla@microsoft.com> Date: Tue, 1 Mar 2016 10:37:06 -0800 Subject: [PATCH 2/5] Switch to use Array.isArray to check subplot argument. Cleanup to satisfy linting rules. --- src/plots/cartesian/graph_interact.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/plots/cartesian/graph_interact.js b/src/plots/cartesian/graph_interact.js index 082be6e2742..aeb45d8286a 100644 --- a/src/plots/cartesian/graph_interact.js +++ b/src/plots/cartesian/graph_interact.js @@ -314,14 +314,12 @@ function hover(gd, evt, subplot){ var fullLayout = gd._fullLayout, plotinfo = fullLayout._plots[subplot], //If the user passed in an array of subplots, use those instead of finding overlayed plots - subplots = (Object.prototype.toString.call(subplot) == "[object Array]") ? + subplots = Array.isArray(subplot) ? subplot : - - subplots = [subplot].concat(plotinfo.overlays + // list of all overlaid subplots to look at + [subplot].concat(plotinfo.overlays .map(function(pi){ return pi.id; })), - // list of all overlaid subplots to look at - xaArray = subplots.map(function(spId) { return Plotly.Axes.getFromId(gd, spId, 'x'); }), @@ -539,7 +537,7 @@ function hover(gd, evt, subplot){ }; var hoverLabels = createHoverText(hoverData, labelOpts); - hoverAvoidOverlaps(hoverData, rotateLabels ? "xa" : "ya"); + hoverAvoidOverlaps(hoverData, rotateLabels ? 'xa' : 'ya'); alignHoverText(hoverLabels, rotateLabels); @@ -1156,9 +1154,9 @@ function hoverAvoidOverlaps(hoverData, ax) { p0 = g0[g0.length-1], p1 = g1[0]; topOverlap = p0.pos+p0.dp+p0.size-p1.pos-p1.dp+p1.size; - + //Only group points that lie on the same axes - if(topOverlap>0.01 && (p0.pmin == p1.pmin) && (p0.pmax == p1.pmax)) { + if(topOverlap>0.01 && (p0.pmin === p1.pmin) && (p0.pmax === p1.pmax)) { // push the new point(s) added to this group out of the way for(j=g1.length-1; j>=0; j--) g1[j].dp += topOverlap; From cddba4e5d42b50bba303debf71f1aabd5625549c Mon Sep 17 00:00:00 2001 From: John Soklaski <jsokla@microsoft.com> Date: Tue, 1 Mar 2016 11:02:58 -0800 Subject: [PATCH 3/5] Some more formatting fixups for lint --- src/plots/cartesian/graph_interact.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plots/cartesian/graph_interact.js b/src/plots/cartesian/graph_interact.js index 3d4c5eb70c6..5a7c917341b 100644 --- a/src/plots/cartesian/graph_interact.js +++ b/src/plots/cartesian/graph_interact.js @@ -319,7 +319,7 @@ function hover(gd, evt, subplot) { subplot : // list of all overlaid subplots to look at [subplot].concat(plotinfo.overlays - .map(function(pi){ return pi.id; })), + .map(function(pi) { return pi.id; })), xaArray = subplots.map(function(spId) { return Plotly.Axes.getFromId(gd, spId, 'x'); @@ -876,7 +876,7 @@ function createHoverText(hoverData, opts) { // first create the objects var hoverLabels = container.selectAll('g.hovertext') - .data(hoverData,function(d){ + .data(hoverData,function(d) { return [d.trace.index,d.index,d.x0,d.y0,d.name,d.attr,d.xa,d.ya ||''].join(','); }); hoverLabels.enter().append('g') @@ -1050,7 +1050,7 @@ function hoverAvoidOverlaps(hoverData, ax) { // make groups of touching points pointgroups = hoverData - .map(function(d,i){ + .map(function(d,i) { var axis = d[ax]; return [{ i: i, From 57d669d3e0e3ccfd579b50c9fec43a5f660a28d3 Mon Sep 17 00:00:00 2001 From: John Soklaski <jsokla@microsoft.com> Date: Fri, 4 Mar 2016 17:23:31 -0800 Subject: [PATCH 4/5] Add unit tests for stacked subplots with both shared x and y axes --- .../mocks/stacked_subplots_shared_yaxis.json | 47 ++++++++ test/jasmine/tests/hover_label_test.js | 104 ++++++++++++++++++ 2 files changed, 151 insertions(+) create mode 100644 test/image/mocks/stacked_subplots_shared_yaxis.json diff --git a/test/image/mocks/stacked_subplots_shared_yaxis.json b/test/image/mocks/stacked_subplots_shared_yaxis.json new file mode 100644 index 00000000000..4ba82cc407d --- /dev/null +++ b/test/image/mocks/stacked_subplots_shared_yaxis.json @@ -0,0 +1,47 @@ +{ + "data": [ + { + "x": [ + 1, + 2, + 3 + ] + }, + { + "x": [ + 2.1, + 2 + ], + "xaxis": "x2" + }, + { + "x": [ + 3, + 2, + 1 + ], + "xaxis": "x3" + } + ], + "layout": { + "xaxis": { + "domain": [ + 0, + 0.3 + ] + }, + "xaxis2": { + "domain": [ + 0.35, + 0.65 + ] + }, + "xaxis3": { + "domain": [ + 0.7, + 1 + ] + }, + "hovermode": "y" + } +} \ No newline at end of file diff --git a/test/jasmine/tests/hover_label_test.js b/test/jasmine/tests/hover_label_test.js index ee1395464ba..150d429eaca 100644 --- a/test/jasmine/tests/hover_label_test.js +++ b/test/jasmine/tests/hover_label_test.js @@ -282,3 +282,107 @@ describe('hover info', function() { }); }); }); + +describe('hover info on stacked subplots', function() { + 'use strict'; + + afterEach(destroyGraphDiv); + + describe('hover info on stacked subplots with shared x-axis', function() { + var mock = require('@mocks/stacked_coupled_subplots.json'); + + beforeEach(function(done) { + Plotly.plot(createGraphDiv(), mock.data, mock.layout).then(done); + }); + + it('responds to hover', function() { + var gd = document.getElementById('graph'); + Plotly.Fx.hover(gd, {xval: 3}, ['xy','xy2','xy3']); + + expect(gd._hoverdata.length).toEqual(2); + + expect(gd._hoverdata[0]).toEqual(jasmine.objectContaining( + { + curveNumber: 1, + pointNumber: 1, + x: 3, + y: 110 + })); + + expect(gd._hoverdata[1]).toEqual(jasmine.objectContaining( + { + curveNumber: 2, + pointNumber: 0, + x: 3, + y: 1000 + })); + + //There should be a single label on the x-axis with the shared x value, 3. + expect(d3.selectAll('g.axistext').size()).toEqual(1); + expect(d3.selectAll('g.axistext').select('text').html()).toEqual('3'); + + //There should be two points being hovered over, in two different traces, one in each plot. + expect(d3.selectAll('g.hovertext').size()).toEqual(2); + var textNodes = d3.selectAll('g.hovertext').selectAll('text'); + + expect(textNodes[0][0].innerHTML).toEqual('trace 1'); + expect(textNodes[0][1].innerHTML).toEqual('110'); + expect(textNodes[1][0].innerHTML).toEqual('trace 2'); + expect(textNodes[1][1].innerHTML).toEqual('1000'); + }); + }); + + describe('hover info on stacked subplots with shared y-axis', function() { + var mock = require('@mocks/stacked_subplots_shared_yaxis.json'); + + beforeEach(function(done) { + Plotly.plot(createGraphDiv(), mock.data, mock.layout).then(done); + }); + + it('responds to hover', function() { + var gd = document.getElementById('graph'); + Plotly.Fx.hover(gd, {yval: 0}, ['xy', 'x2y', 'x3y']); + + expect(gd._hoverdata.length).toEqual(3); + + expect(gd._hoverdata[0]).toEqual(jasmine.objectContaining( + { + curveNumber: 0, + pointNumber: 0, + x: 1, + y: 0 + })); + + expect(gd._hoverdata[1]).toEqual(jasmine.objectContaining( + { + curveNumber: 1, + pointNumber: 0, + x: 2.1, + y: 0 + })); + + expect(gd._hoverdata[2]).toEqual(jasmine.objectContaining( + { + curveNumber: 2, + pointNumber: 0, + x: 3, + y: 0 + })); + + //There should be a single label on the y-axis with the shared y value, 0. + expect(d3.selectAll('g.axistext').size()).toEqual(1); + expect(d3.selectAll('g.axistext').select('text').html()).toEqual('0'); + + //There should be three points being hovered over, in three different traces, one in each plot. + expect(d3.selectAll('g.hovertext').size()).toEqual(3); + var textNodes = d3.selectAll('g.hovertext').selectAll('text'); + + expect(textNodes[0][0].innerHTML).toEqual('trace 0'); + expect(textNodes[0][1].innerHTML).toEqual('1'); + expect(textNodes[1][0].innerHTML).toEqual('trace 1'); + expect(textNodes[1][1].innerHTML).toEqual('2.1'); + expect(textNodes[2][0].innerHTML).toEqual('trace 2'); + expect(textNodes[2][1].innerHTML).toEqual('3'); + }); + }); +}); \ No newline at end of file From a2164e4f58054a8bbadd1ad6b99553f048f0c987 Mon Sep 17 00:00:00 2001 From: John Soklaski <jsokla@microsoft.com> Date: Mon, 7 Mar 2016 16:09:21 -0800 Subject: [PATCH 5/5] Add baseline image for stacked_subplots_shared_yaxis.json --- .../baselines/stacked_subplots_shared_yaxis.png | Bin 0 -> 34869 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/image/baselines/stacked_subplots_shared_yaxis.png diff --git a/test/image/baselines/stacked_subplots_shared_yaxis.png b/test/image/baselines/stacked_subplots_shared_yaxis.png new file mode 100644 index 0000000000000000000000000000000000000000..70a3beea37478d20df928fbfee452d248099188d GIT binary patch literal 34869 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 UPkuOhkpleF)iTs9Rd;;!KNe13Z2$lO literal 0 HcmV?d00001