Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
6d88255
make bar, box & violin plot method use d3 enter/exit/update pattern
etpinard Apr 19, 2018
31e5b12
lint and minor perf improvements in Cartesian.clean
etpinard Apr 19, 2018
156f127
move up linkSubplots before cleanPlot
etpinard Apr 19, 2018
13a15d1
improve cartesian trace delete pattern
etpinard Apr 19, 2018
b4ea2ce
use plotMethods stash in range slider range plots
etpinard Apr 19, 2018
072f028
fixup trace deletion for carpet traces
etpinard Apr 19, 2018
e5c860a
simplify arg1 -> plotMethod logic
etpinard Apr 20, 2018
400bfe6
ping imagetest after having restarting nw.js
etpinard Apr 24, 2018
284c206
introduce new strategy for cartesian trace module layer updates
etpinard Apr 24, 2018
da63ed4
make heatmap/contour(carpet)/carpet plot method remove its own trace
etpinard Apr 24, 2018
a1c76bc
sub imagelayer->heatmaplayer, maplayer->contourlayer in tests
etpinard Apr 24, 2018
fa38ca5
update `cliponaxis: false`
etpinard Apr 24, 2018
48ee0d8
:lock: contour with heatmap coloring layer order
etpinard Apr 24, 2018
362da1f
:lock: scattercarpet + scatter coexistence
etpinard Apr 24, 2018
3bef9a9
add getUidsFromCalcData helper
etpinard Apr 30, 2018
d47276f
make visible trace module -> layer data a 1D loop w/ + indexOf + sort
etpinard Apr 30, 2018
83422f7
skip gl tags in flaky-tagged jasmine test cmd
etpinard Apr 30, 2018
8c9a7bf
Revert "skip gl tags in flaky-tagged jasmine test cmd"
etpinard Apr 30, 2018
f771310
Merge pull request #2579 from plotly/uid-trace-removal
etpinard Apr 30, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add getUidsFromCalcData helper
  • Loading branch information
etpinard committed Apr 30, 2018
commit 3bef9a99c2439e74d582c028a2c1e02c70739ffd
17 changes: 17 additions & 0 deletions src/plots/get_data.js
Original file line number Diff line number Diff line change
Expand Up @@ -123,3 +123,20 @@ exports.getSubplotData = function getSubplotData(data, type, subplotId) {

return subplotData;
};

/**
* Get a lookup object of trace uids corresponding in a given calcdata array.
*
* @param {array} calcdata: as in gd.calcdata (or a subset)
* @return {object} lookup object of uids (`uid: 1`)
*/
exports.getUidsFromCalcData = function(calcdata) {
var out = {};

for(var i = 0; i < calcdata.length; i++) {
var trace = calcdata[i][0].trace;
out[trace.uid] = 1;
}

return out;
};
11 changes: 6 additions & 5 deletions src/traces/carpet/plot.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,21 @@ var orientText = require('./orient_text');
var svgTextUtils = require('../../lib/svg_text_utils');
var Lib = require('../../lib');
var alignmentConstants = require('../../constants/alignment');
var getUidsFromCalcData = require('../../plots/get_data').getUidsFromCalcData;

module.exports = function plot(gd, plotinfo, cdcarpet, carpetLayer) {
var i;
var uidLookup = getUidsFromCalcData(cdcarpet);

carpetLayer.selectAll('g.trace').each(function() {
var classString = d3.select(this).attr('class');
var oldUid = classString.split('carpet')[1].split(/\s/)[0];
for(i = 0; i < cdcarpet.length; i++) {
if(oldUid === cdcarpet[i][0].trace.uid) return;

if(!uidLookup[oldUid]) {
d3.select(this).remove();
}
d3.select(this).remove();
});

for(i = 0; i < cdcarpet.length; i++) {
for(var i = 0; i < cdcarpet.length; i++) {
plotOne(gd, plotinfo, cdcarpet[i], carpetLayer);
}
};
Expand Down
11 changes: 5 additions & 6 deletions src/traces/contour/plot.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ var Drawing = require('../../components/drawing');
var svgTextUtils = require('../../lib/svg_text_utils');
var Axes = require('../../plots/cartesian/axes');
var setConvert = require('../../plots/cartesian/set_convert');
var getUidsFromCalcData = require('../../plots/get_data').getUidsFromCalcData;

var heatmapPlot = require('../heatmap/plot');
var makeCrossings = require('./make_crossings');
Expand All @@ -26,18 +27,16 @@ var closeBoundaries = require('./close_boundaries');
var constants = require('./constants');
var costConstants = constants.LABELOPTIMIZER;


exports.plot = function plot(gd, plotinfo, cdcontours, contourLayer) {
var i;
var uidLookup = getUidsFromCalcData(cdcontours);

contourLayer.selectAll('g.contour').each(function(d) {
for(i = 0; i < cdcontours.length; i++) {
if(d.trace.uid === cdcontours[i][0].trace.uid) return;
if(!uidLookup[d.trace.uid]) {
d3.select(this).remove();
}
d3.select(this).remove();
});

for(i = 0; i < cdcontours.length; i++) {
for(var i = 0; i < cdcontours.length; i++) {
plotOne(gd, plotinfo, cdcontours[i], contourLayer);
}
};
Expand Down
11 changes: 5 additions & 6 deletions src/traces/contourcarpet/plot.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ var map1dArray = require('../carpet/map_1d_array');
var makepath = require('../carpet/makepath');
var Drawing = require('../../components/drawing');
var Lib = require('../../lib');
var getUidsFromCalcData = require('../../plots/get_data').getUidsFromCalcData;

var makeCrossings = require('../contour/make_crossings');
var findAllPaths = require('../contour/find_all_paths');
Expand All @@ -25,18 +26,16 @@ var mapPathinfo = require('./map_pathinfo');
var lookupCarpet = require('../carpet/lookup_carpetid');
var closeBoundaries = require('../contour/close_boundaries');


module.exports = function plot(gd, plotinfo, cdcontours, contourcarpetLayer) {
var i;
var uidLookup = getUidsFromCalcData(cdcontours);

contourcarpetLayer.selectAll('g.contour').each(function(d) {
for(i = 0; i < cdcontours.length; i++) {
if(d.trace.uid === cdcontours[i][0].trace.uid) return;
if(!uidLookup[d.trace.uid]) {
d3.select(this).remove();
}
d3.select(this).remove();
});

for(i = 0; i < cdcontours.length; i++) {
for(var i = 0; i < cdcontours.length; i++) {
plotOne(gd, plotinfo, cdcontours[i], contourcarpetLayer);
}
};
Expand Down
11 changes: 6 additions & 5 deletions src/traces/heatmap/plot.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,22 @@ var Registry = require('../../registry');
var Lib = require('../../lib');
var Colorscale = require('../../components/colorscale');
var xmlnsNamespaces = require('../../constants/xmlns_namespaces');
var getUidsFromCalcData = require('../../plots/get_data').getUidsFromCalcData;

var maxRowLength = require('./max_row_length');

module.exports = function(gd, plotinfo, cdheatmaps, heatmapLayer) {
var i;
var uidLookup = getUidsFromCalcData(cdheatmaps);

heatmapLayer.selectAll('.hm > image').each(function(d) {
var oldTrace = d.trace || {};
for(i = 0; i < cdheatmaps.length; i++) {
if(oldTrace.uid === cdheatmaps[i][0].trace.uid) return;

if(!uidLookup[oldTrace.uid]) {
d3.select(this.parentNode).remove();
}
d3.select(this.parentNode).remove();
});

for(i = 0; i < cdheatmaps.length; i++) {
for(var i = 0; i < cdheatmaps.length; i++) {
plotOne(gd, plotinfo, cdheatmaps[i], heatmapLayer);
}
};
Expand Down