From 7d250aae5f002cdf3a5ce639f65a40826788369b Mon Sep 17 00:00:00 2001 From: Robert Monfera Date: Thu, 9 Mar 2017 23:12:51 +0100 Subject: [PATCH] allow multiple parcoords dimensions with the same name --- src/traces/parcoords/parcoords.js | 2 +- test/jasmine/tests/parcoords_test.js | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/traces/parcoords/parcoords.js b/src/traces/parcoords/parcoords.js index 924d016289f..f13b7e673de 100644 --- a/src/traces/parcoords/parcoords.js +++ b/src/traces/parcoords/parcoords.js @@ -176,7 +176,7 @@ function viewModel(model) { viewModel.dimensions = dimensions.filter(visible).map(function(dimension, i) { var domainToUnit = domainToUnitScale(dimension); var foundKey = uniqueKeys[dimension.label]; - uniqueKeys[dimension.label] = (foundKey ? 0 : foundKey) + 1; + uniqueKeys[dimension.label] = (foundKey || 0) + 1; var key = dimension.label + (foundKey ? '__' + foundKey : ''); return { key: key, diff --git a/test/jasmine/tests/parcoords_test.js b/test/jasmine/tests/parcoords_test.js index 5528983a27d..246d4f8f67f 100644 --- a/test/jasmine/tests/parcoords_test.js +++ b/test/jasmine/tests/parcoords_test.js @@ -288,6 +288,23 @@ describe('parcoords', function() { }); }); + it('Works with duplicate dimension labels', function(done) { + + var mockCopy = Lib.extendDeep({}, mock2); + + mockCopy.layout.width = 320; + mockCopy.data[0].dimensions[1].label = mockCopy.data[0].dimensions[0].label; + + var gd = createGraphDiv(); + Plotly.plot(gd, mockCopy.data, mockCopy.layout).then(function() { + + expect(gd.data.length).toEqual(1); + expect(gd.data[0].dimensions.length).toEqual(2); + expect(document.querySelectorAll('.axis').length).toEqual(2); + done(); + }); + }); + it('Works with a single line; also, use a longer color array than the number of lines', function(done) { var mockCopy = Lib.extendDeep({}, mock2);