Skip to content

Commit f673ce6

Browse files
authored
Merge pull request plotly#6965 from plotly/fix6959-splom-unified-hoversubplots
Avoid duplicate points in splom hover
2 parents 8619939 + 996593a commit f673ce6

File tree

3 files changed

+14
-10
lines changed

3 files changed

+14
-10
lines changed

draftlogs/6965_fix.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- Fix duplicated points in splom hover when `hoversubplots` is set to "axis" [[#6965](https://github.com/plotly/plotly.js/pull/6965)]

src/traces/splom/hover.js

+3
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ function hoverPoints(pointData, xval, yval, hovermode, opts) {
2727
for(var i = 0; i < subplotsWith.length; i++) {
2828
var spId = subplotsWith[i];
2929

30+
// do not reselect on the initial subplot
31+
if(spId === (pointData.xa._id + pointData.ya._id)) continue;
32+
3033
if(hovermodeHasY) {
3134
_pointData.xa = getFromId(gd, spId, 'x');
3235
} else { // hovermodeHasX

test/jasmine/tests/hover_label_test.js

+10-10
Original file line numberDiff line numberDiff line change
@@ -2640,7 +2640,7 @@ describe('splom hover on subplots when hoversubplots is set to *axis* and (x|y)
26402640
it('splom hoversubplots: *axis*', function() {
26412641
Lib.clearThrottle();
26422642
Plotly.Fx.hover(gd, {x: 200, y: 200}, 'xy');
2643-
expect(gd._hoverdata.length).toBe(3);
2643+
expect(gd._hoverdata.length).toBe(2);
26442644
assertHoverLabelContent({
26452645
nums: ['100', '100k'],
26462646
name: ['', ''],
@@ -2651,12 +2651,12 @@ describe('splom hover on subplots when hoversubplots is set to *axis* and (x|y)
26512651

26522652
Lib.clearThrottle();
26532653
Plotly.Fx.hover(gd, {x: 200, y: 200}, 'xy');
2654-
expect(gd._hoverdata.length).toBe(3);
2654+
expect(gd._hoverdata.length).toBe(2);
26552655

26562656
Plotly.relayout(gd, 'hovermode', 'y unified');
26572657
Lib.clearThrottle();
26582658
Plotly.Fx.hover(gd, {x: 200, y: 200}, 'xy');
2659-
expect(gd._hoverdata.length).toBe(3);
2659+
expect(gd._hoverdata.length).toBe(2);
26602660
});
26612661
});
26622662

@@ -2696,7 +2696,7 @@ describe('splom hover *axis* hoversubplots splom points on same position should
26962696
it('splom *axis* hoversubplots', function() {
26972697
Lib.clearThrottle();
26982698
Plotly.Fx.hover(gd, {}, 'xy');
2699-
expect(gd._hoverdata.length).toBe(5);
2699+
expect(gd._hoverdata.length).toBe(4);
27002700
assertHoverLabelContent({
27012701
nums: ['1', '1', '1', '1'],
27022702
name: ['', '', '', ''],
@@ -2705,7 +2705,7 @@ describe('splom hover *axis* hoversubplots splom points on same position should
27052705

27062706
Lib.clearThrottle();
27072707
Plotly.Fx.hover(gd, {}, 'xy2');
2708-
expect(gd._hoverdata.length).toBe(4);
2708+
expect(gd._hoverdata.length).toBe(3);
27092709
assertHoverLabelContent({
27102710
nums: ['1', '2', '2'],
27112711
name: ['', '', ''],
@@ -2714,7 +2714,7 @@ describe('splom hover *axis* hoversubplots splom points on same position should
27142714

27152715
Lib.clearThrottle();
27162716
Plotly.Fx.hover(gd, {}, 'xy3');
2717-
expect(gd._hoverdata.length).toBe(4);
2717+
expect(gd._hoverdata.length).toBe(3);
27182718
assertHoverLabelContent({
27192719
nums: ['1', '2', '2'],
27202720
name: ['', '', ''],
@@ -2723,7 +2723,7 @@ describe('splom hover *axis* hoversubplots splom points on same position should
27232723

27242724
Lib.clearThrottle();
27252725
Plotly.Fx.hover(gd, {}, 'xy4');
2726-
expect(gd._hoverdata.length).toBe(5);
2726+
expect(gd._hoverdata.length).toBe(4);
27272727
assertHoverLabelContent({
27282728
nums: ['1', '3', '3', '3'],
27292729
name: ['', '', '', ''],
@@ -2732,7 +2732,7 @@ describe('splom hover *axis* hoversubplots splom points on same position should
27322732

27332733
Lib.clearThrottle();
27342734
Plotly.Fx.hover(gd, {}, 'x2y');
2735-
expect(gd._hoverdata.length).toBe(5);
2735+
expect(gd._hoverdata.length).toBe(4);
27362736
assertHoverLabelContent({
27372737
nums: ['1', '3', '3', '3'],
27382738
name: ['', '', '', ''],
@@ -2741,7 +2741,7 @@ describe('splom hover *axis* hoversubplots splom points on same position should
27412741

27422742
Lib.clearThrottle();
27432743
Plotly.Fx.hover(gd, {}, 'x3y');
2744-
expect(gd._hoverdata.length).toBe(5);
2744+
expect(gd._hoverdata.length).toBe(4);
27452745
assertHoverLabelContent({
27462746
nums: ['1', '3', '3', '3'],
27472747
name: ['', '', '', ''],
@@ -2750,7 +2750,7 @@ describe('splom hover *axis* hoversubplots splom points on same position should
27502750

27512751
Lib.clearThrottle();
27522752
Plotly.Fx.hover(gd, {}, 'x4y');
2753-
expect(gd._hoverdata.length).toBe(5);
2753+
expect(gd._hoverdata.length).toBe(4);
27542754
assertHoverLabelContent({
27552755
nums: ['1', '3', '3', '3'],
27562756
name: ['', '', '', ''],

0 commit comments

Comments
 (0)