Skip to content

Commit ec4d9ee

Browse files
committed
store index with each cd item instead of trying to get it from the join
1 parent e3af5eb commit ec4d9ee

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

src/components/drawing/index.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ drawing.symbolNumber = function(v) {
203203
return Math.floor(Math.max(v, 0));
204204
};
205205

206-
function singlePointStyle(d, sel, trace, markerScale, lineScale, marker, markerLine, gd, i) {
206+
function singlePointStyle(d, sel, trace, markerScale, lineScale, marker, markerLine, gd) {
207207
// only scatter & box plots get marker path and opacity
208208
// bars, histograms don't
209209
if(Registry.traceIs(trace, 'symbols')) {
@@ -292,7 +292,7 @@ function singlePointStyle(d, sel, trace, markerScale, lineScale, marker, markerL
292292
else gradientColor = markerGradient.color;
293293

294294
var gradientID = 'g' + gd._fullLayout._uid + '-' + trace.uid;
295-
if(perPointGradient) gradientID += '-' + i;
295+
if(perPointGradient) gradientID += '-' + d.i;
296296

297297
sel.call(drawing.gradient, gd, gradientID, gradientType, fillColor, gradientColor);
298298
}
@@ -361,10 +361,10 @@ drawing.initGradients = function(gd) {
361361
gradientsGroup.selectAll('linearGradient,radialGradient').remove();
362362
};
363363

364-
drawing.singlePointStyle = function(d, sel, trace, markerScale, lineScale, gd, i) {
364+
drawing.singlePointStyle = function(d, sel, trace, markerScale, lineScale, gd) {
365365
var marker = trace.marker;
366366

367-
singlePointStyle(d, sel, trace, markerScale, lineScale, marker, marker.line, gd, i);
367+
singlePointStyle(d, sel, trace, markerScale, lineScale, marker, marker.line, gd);
368368

369369
};
370370

@@ -378,8 +378,8 @@ drawing.pointStyle = function(s, trace) {
378378
var lineScale = drawing.tryColorscale(marker, 'line');
379379
var gd = Lib.getPlotDiv(s.node());
380380

381-
s.each(function(d, i) {
382-
drawing.singlePointStyle(d, d3.select(this), trace, markerScale, lineScale, gd, i);
381+
s.each(function(d) {
382+
drawing.singlePointStyle(d, d3.select(this), trace, markerScale, lineScale, gd);
383383
});
384384
};
385385

src/traces/scatter/arrays_to_calcdata.js

+3
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ var Lib = require('../../lib');
1515
// arrayOk attributes, merge them into calcdata array
1616
module.exports = function arraysToCalcdata(cd, trace) {
1717

18+
// so each point knows which index it originally came from
19+
for(var i = 0; i < cd.length; i++) cd[i].i = i;
20+
1821
Lib.mergeArray(trace.text, cd, 'tx');
1922
Lib.mergeArray(trace.hovertext, cd, 'htx');
2023
Lib.mergeArray(trace.customdata, cd, 'data');

src/traces/scatter/plot.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -430,11 +430,11 @@ function plotOne(gd, idx, plotinfo, cdscatter, cdscatterAll, element, transition
430430
var markerScale = showMarkers && Drawing.tryColorscale(trace.marker, '');
431431
var lineScale = showMarkers && Drawing.tryColorscale(trace.marker, 'line');
432432

433-
join.each(function(d, i) {
433+
join.each(function(d) {
434434
var el = d3.select(this);
435435
var sel = transition(el);
436436
Drawing.translatePoint(d, sel, xa, ya);
437-
Drawing.singlePointStyle(d, sel, trace, markerScale, lineScale, gd, i);
437+
Drawing.singlePointStyle(d, sel, trace, markerScale, lineScale, gd);
438438

439439
if(trace.customdata) {
440440
el.classed('plotly-customdata', d.data !== null && d.data !== undefined);

0 commit comments

Comments
 (0)