diff --git a/src/traces/parcoords/calc.js b/src/traces/parcoords/calc.js index a83f4ccaeca..e9c756af988 100644 --- a/src/traces/parcoords/calc.js +++ b/src/traces/parcoords/calc.js @@ -10,13 +10,20 @@ var hasColorscale = require('../../components/colorscale/has_colorscale'); var calcColorscale = require('../../components/colorscale/calc'); +var Lib = require('../../lib'); module.exports = function calc(gd, trace) { + var cs = !!trace.line.colorscale && Lib.isArray(trace.line.color); + var color = cs ? trace.line.color : Array.apply(0, Array(trace.dimensions.reduce(function(p, n) {return Math.max(p, n.values.length);}, 0))).map(function() {return 0.5;}); + var cscale = cs ? trace.line.colorscale : [[0, trace.line.color], [1, trace.line.color]]; if(hasColorscale(trace, 'line')) { calcColorscale(trace, trace.line.color, 'line', 'c'); } - return [{}]; + return [{ + lineColor: color, + cscale: cscale + }]; }; diff --git a/src/traces/parcoords/parcoords.js b/src/traces/parcoords/parcoords.js index 7b6c16cf106..7c58aa1c9ef 100644 --- a/src/traces/parcoords/parcoords.js +++ b/src/traces/parcoords/parcoords.js @@ -115,18 +115,15 @@ function unwrap(d) { } function model(layout, d, i) { - var trace = unwrap(d).trace, + var cd0 = unwrap(d), + trace = cd0.trace, + lineColor = cd0.lineColor, + cscale = cd0.cscale, line = trace.line, domain = trace.domain, dimensions = trace.dimensions, width = layout.width; - var cs = !!trace.line.colorscale && Lib.isArray(trace.line.color); - var lineColor = cs ? - trace.line.color : - Array.apply(0, Array(trace.dimensions.reduce(function(p, n) {return Math.max(p, n.values.length);}, 0))).map(function() {return 0.5;}); - var lineColorScale = cs ? trace.line.colorscale : [[0, trace.line.color], [1, trace.line.color]]; - var lines = Lib.extendDeep({}, line, { color: lineColor.map(domainToUnitScale({values: lineColor, range: [line.cmin, line.cmax]})), blockLineCount: c.blockLineCount, @@ -145,7 +142,7 @@ function model(layout, d, i) { colCount: dimensions.filter(visible).length, dimensions: dimensions, tickDistance: c.tickDistance, - unitToColor: unitToColorScale(lineColorScale), + unitToColor: unitToColorScale(cscale), lines: lines, translateX: domain.x[0] * width, translateY: layout.height - domain.y[1] * layout.height,