From 48cf797795f67cdc13180a30d275cbd67ccfc46e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Thu, 23 May 2019 14:33:49 -0400 Subject: [PATCH 1/2] lint in parcoords/ --- src/traces/parcoords/attributes.js | 2 +- src/traces/parcoords/calc.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/traces/parcoords/attributes.js b/src/traces/parcoords/attributes.js index bf1f7223410..b6eb03ded73 100644 --- a/src/traces/parcoords/attributes.js +++ b/src/traces/parcoords/attributes.js @@ -114,7 +114,7 @@ module.exports = { line: extendFlat({editType: 'calc'}, colorScaleAttrs('line', { // the default autocolorscale isn't quite usable for parcoords due to context ambiguity around 0 (grey, off-white) - // autocolorscale therefore defaults to false too, to avoid being overridden by the blue-white-red autocolor palette + // autocolorscale therefore defaults to false too, to avoid being overridden by the blue-white-red autocolor palette colorscaleDflt: 'Viridis', autoColorDflt: false, editTypeOverride: 'calc' diff --git a/src/traces/parcoords/calc.js b/src/traces/parcoords/calc.js index 8dbdb84d156..a0765eac2a2 100644 --- a/src/traces/parcoords/calc.js +++ b/src/traces/parcoords/calc.js @@ -46,5 +46,5 @@ function constHalf(len) { } function convertTypedArray(a) { - return (Lib.isTypedArray(a)) ? Array.prototype.slice.call(a) : a; + return Lib.isTypedArray(a) ? Array.prototype.slice.call(a) : a; } From b09df4e87466c58a36de6efd24aa2711edada8b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Thu, 23 May 2019 14:34:06 -0400 Subject: [PATCH 2/2] implement coloraxis in parcoords traces --- src/traces/parcoords/calc.js | 25 +- src/traces/parcoords/parcoords.js | 5 +- .../baselines/gl2d_parcoords_coloraxis.png | Bin 0 -> 57558 bytes .../image/mocks/gl2d_parcoords_coloraxis.json | 984 ++++++++++++++++++ 4 files changed, 1000 insertions(+), 14 deletions(-) create mode 100644 test/image/baselines/gl2d_parcoords_coloraxis.png create mode 100644 test/image/mocks/gl2d_parcoords_coloraxis.json diff --git a/src/traces/parcoords/calc.js b/src/traces/parcoords/calc.js index a0765eac2a2..11078ac5d57 100644 --- a/src/traces/parcoords/calc.js +++ b/src/traces/parcoords/calc.js @@ -8,8 +8,7 @@ 'use strict'; -var hasColorscale = require('../../components/colorscale/helpers').hasColorscale; -var calcColorscale = require('../../components/colorscale/calc'); +var Colorscale = require('../../components/colorscale'); var Lib = require('../../lib'); var wrap = require('../../lib/gup').wrap; @@ -19,22 +18,24 @@ module.exports = function calc(gd, trace) { } trace.line.color = convertTypedArray(trace.line.color); - var cs = !!trace.line.colorscale && Array.isArray(trace.line.color); - var color = cs ? trace.line.color : constHalf(trace._length); - var cscale = cs ? trace.line.colorscale : [[0, trace.line.color], [1, trace.line.color]]; + var lineColor; + var cscale; - if(hasColorscale(trace, 'line')) { - calcColorscale(gd, trace, { - vals: color, + if(Colorscale.hasColorscale(trace, 'line') && Array.isArray(trace.line.color)) { + lineColor = trace.line.color; + cscale = Colorscale.extractOpts(trace.line).colorscale; + + Colorscale.calc(gd, trace, { + vals: lineColor, containerStr: 'line', cLetter: 'c' }); + } else { + lineColor = constHalf(trace._length); + cscale = [[0, trace.line.color], [1, trace.line.color]]; } - return wrap({ - lineColor: color, - cscale: cscale - }); + return wrap({lineColor: lineColor, cscale: cscale}); }; function constHalf(len) { diff --git a/src/traces/parcoords/parcoords.js b/src/traces/parcoords/parcoords.js index cef0756d81e..02e4a55ea46 100644 --- a/src/traces/parcoords/parcoords.js +++ b/src/traces/parcoords/parcoords.js @@ -132,7 +132,8 @@ function model(layout, d, i) { var trace = cd0.trace; var lineColor = cd0.lineColor; var line = trace.line; - var cscale = line.reversescale ? Colorscale.flipScale(cd0.cscale) : cd0.cscale; + var cOpts = Colorscale.extractOpts(line); + var cscale = cOpts.reversescale ? Colorscale.flipScale(cd0.cscale) : cd0.cscale; var domain = trace.domain; var dimensions = trace.dimensions; var width = layout.width; @@ -143,7 +144,7 @@ function model(layout, d, i) { var lines = Lib.extendDeepNoArrays({}, line, { color: lineColor.map(d3.scale.linear().domain(dimensionExtent({ values: lineColor, - range: [line.cmin, line.cmax], + range: [cOpts.min, cOpts.max], _length: trace._length }))), blockLineCount: c.blockLineCount, diff --git a/test/image/baselines/gl2d_parcoords_coloraxis.png b/test/image/baselines/gl2d_parcoords_coloraxis.png new file mode 100644 index 0000000000000000000000000000000000000000..1029b7b6ee27d8158b5ed8d8aecbb23aa99d9bb8 GIT binary patch literal 57558 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
3r4u+-$h8V+Fd)y=jTz60C`aMqFphj<}^Z`tlC z=)qV|x9AHp@GFD>S&-5%&%LRK8b`S))VR)%COsI$Z-2((7l(*=P=vVDB$`?~Y2QC0 z3toa2nvYsbb{pyEF*z9BUs|VXUawFL&65M~;4uv0?z3q;3UUtVo-MRCmA%Gf7}$V! z>e;QQ)ei5kOXEr(2!I}}L9*SJFGgCeen(+PMi@=^&KSXs(75c4a)*}9=xuNFbpmBc6@-n@m>xMkl-Wv90;{vm78x-ZFSkV6LTJU=qf;wkz;n9uJD$xhb&*mH@*`;dzOu5eY%s$ z2gFGa4CRFgdWtRSR)Iv(^+GQX4;dq;Pl)z>L+R+^T7*`uxFdtj28$llXAyL1*rOlH zzOuViXVzC_v$Q!L$y7mVeNO=CWVmd^-_vn0y>~c+hPNzlU^#x`Y2XrnCe1H8zN_!q z?|;9ETwy?-pZ>NHc>RZVkFF|~I(AC`8U`*}5-ehPMA$2rq(8K0@nC4YT0Yy`e?LD* z;T@18Mk1!iDd!K(5)8EvDVECmGm%djfW!YXIfRn!>QIHoxiZFu%2mxDLsdHwNKhKb zm6WyvU@B`TTN6jgb?kvaOXXEs4KBs9v?R;&>@S7LD<~_&FIl%k=AF^;-t!yKRildqhSOg&nUdUwJgy_`dh+~%!7}xbjQMu=KzilTix)@Z zWC$YY<&T_Xi)QXCt1TBtLA9HDN0v#HKkS9^Me7o=M6KFTGuKsv003f31qV*|c>OTO z#%v%V?$0i8)o*JM{cwRY9x<|~wH@UP2Qy{@_QYN`~fuJ)QL-$2r#kl zC7)Qj6+a~i>vc_iF zfN5V{tyq4c*;Uc;SNUNsu<{!5>X|G-|m zy&UPwk7j6%^yt}JaH|P?|K%#{{%YzkMuq!6Ccb+vz2z=Qe$OB2j)NeX1GcrCm42HU zVdq$MBwE6rs7CNJyUcVko2ci>e?!*JClEP8GnL^IOtO3qU8Oa9_CGpav7*;|&4ux1 zmuG1OAt#iA89BH)FLb3+wMPcshJ%CiwWAHQE5wg$A|B?MU1#ZBLy8*4?B+fae`d zZVen83zH0{>&|Ix9_|RGm`x#mmvOp*@)>0L?)(51;Zk~Cdcugf^X3Q8faK59;hor% zO2q>2@=I!rbs6Y9JHR1ly=tlWNCf)@62lDdIBeDsAwb7u_Yau`_4b2MTyMAOz>*wk_gYiuV;u_O{moK^Ir1G>fAHw?8i?*pZl> z@7#V-q4peA!ExI*2&Q-I!$onDUvzjo3+}v2wx5MFsiiI(ldFe!_L}L*X9Zg?M=G;u zEl?BQ_m*cTYb2|q>7ggHU1qJpK05| zqZUPxv+pZ9&Tm~=CsJSw+@h>=QCDCz6(Uov3q`6@3vChP!ms*<+HhSc@Znl;U4LO6 z1!(T$r};{lKeYQ?^p&x)SEk?b&yArsq3}H63nlEJ%;ev+LT$S2l8X`lJc@p!m@t@J z=;z+6x_@Y&Rlv~u55dm&Up%3hw8wyhxUl)G7Un;+<9uM~e<$}}$^A#a{;PBU-wdMB rJv#ydfvBn7xc-lW_&+VN|1YMb$uV-rm+{Zwp%67?%^M^|e8B$z4znpP literal 0 HcmV?d00001 diff --git a/test/image/mocks/gl2d_parcoords_coloraxis.json b/test/image/mocks/gl2d_parcoords_coloraxis.json new file mode 100644 index 00000000000..48432e59d75 --- /dev/null +++ b/test/image/mocks/gl2d_parcoords_coloraxis.json @@ -0,0 +1,984 @@ +{ + "data": [ + { + "dimensions": [ + { + "label": "Sepal Length", + "values": [ + 5.1, + 4.9, + 4.7, + 4.6, + 5, + 5.4, + 4.6, + 5, + 4.4, + 4.9, + 5.4, + 4.8, + 4.8, + 4.3, + 5.8, + 5.7, + 5.4, + 5.1, + 5.7, + 5.1, + 5.4, + 5.1, + 4.6, + 5.1, + 4.8, + 5, + 5, + 5.2, + 5.2, + 4.7, + 4.8, + 5.4, + 5.2, + 5.5, + 4.9, + 5, + 5.5, + 4.9, + 4.4, + 5.1, + 5, + 4.5, + 4.4, + 5, + 5.1, + 4.8, + 5.1, + 4.6, + 5.3, + 5, + 7, + 6.4, + 6.9, + 5.5, + 6.5, + 5.7, + 6.3, + 4.9, + 6.6, + 5.2, + 5, + 5.9, + 6, + 6.1, + 5.6, + 6.7, + 5.6, + 5.8, + 6.2, + 5.6, + 5.9, + 6.1, + 6.3, + 6.1, + 6.4, + 6.6, + 6.8, + 6.7, + 6, + 5.7, + 5.5, + 5.5, + 5.8, + 6, + 5.4, + 6, + 6.7, + 6.3, + 5.6, + 5.5, + 5.5, + 6.1, + 5.8, + 5, + 5.6, + 5.7, + 5.7, + 6.2, + 5.1, + 5.7, + 6.3, + 5.8, + 7.1, + 6.3, + 6.5, + 7.6, + 4.9, + 7.3, + 6.7, + 7.2, + 6.5, + 6.4, + 6.8, + 5.7, + 5.8, + 6.4, + 6.5, + 7.7, + 7.7, + 6, + 6.9, + 5.6, + 7.7, + 6.3, + 6.7, + 7.2, + 6.2, + 6.1, + 6.4, + 7.2, + 7.4, + 7.9, + 6.4, + 6.3, + 6.1, + 7.7, + 6.3, + 6.4, + 6, + 6.9, + 6.7, + 6.9, + 5.8, + 6.8, + 6.7, + 6.7, + 6.3, + 6.5, + 6.2, + 5.9 + ] + }, + { + "label": "Sepal Width", + "values": [ + 3.5, + 3, + 3.2, + 3.1, + 3.6, + 3.9, + 3.4, + 3.4, + 2.9, + 3.1, + 3.7, + 3.4, + 3, + 3, + 4, + 4.4, + 3.9, + 3.5, + 3.8, + 3.8, + 3.4, + 3.7, + 3.6, + 3.3, + 3.4, + 3, + 3.4, + 3.5, + 3.4, + 3.2, + 3.1, + 3.4, + 4.1, + 4.2, + 3.1, + 3.2, + 3.5, + 3.1, + 3, + 3.4, + 3.5, + 2.3, + 3.2, + 3.5, + 3.8, + 3, + 3.8, + 3.2, + 3.7, + 3.3, + 3.2, + 3.2, + 3.1, + 2.3, + 2.8, + 2.8, + 3.3, + 2.4, + 2.9, + 2.7, + 2, + 3, + 2.2, + 2.9, + 2.9, + 3.1, + 3, + 2.7, + 2.2, + 2.5, + 3.2, + 2.8, + 2.5, + 2.8, + 2.9, + 3, + 2.8, + 3, + 2.9, + 2.6, + 2.4, + 2.4, + 2.7, + 2.7, + 3, + 3.4, + 3.1, + 2.3, + 3, + 2.5, + 2.6, + 3, + 2.6, + 2.3, + 2.7, + 3, + 2.9, + 2.9, + 2.5, + 2.8, + 3.3, + 2.7, + 3, + 2.9, + 3, + 3, + 2.5, + 2.9, + 2.5, + 3.6, + 3.2, + 2.7, + 3, + 2.5, + 2.8, + 3.2, + 3, + 3.8, + 2.6, + 2.2, + 3.2, + 2.8, + 2.8, + 2.7, + 3.3, + 3.2, + 2.8, + 3, + 2.8, + 3, + 2.8, + 3.8, + 2.8, + 2.8, + 2.6, + 3, + 3.4, + 3.1, + 3, + 3.1, + 3.1, + 3.1, + 2.7, + 3.2, + 3.3, + 3, + 2.5, + 3, + 3.4, + 3 + ] + }, + { + "label": "Petal Length", + "values": [ + 1.4, + 1.4, + 1.3, + 1.5, + 1.4, + 1.7, + 1.4, + 1.5, + 1.4, + 1.5, + 1.5, + 1.6, + 1.4, + 1.1, + 1.2, + 1.5, + 1.3, + 1.4, + 1.7, + 1.5, + 1.7, + 1.5, + 1, + 1.7, + 1.9, + 1.6, + 1.6, + 1.5, + 1.4, + 1.6, + 1.6, + 1.5, + 1.5, + 1.4, + 1.5, + 1.2, + 1.3, + 1.5, + 1.3, + 1.5, + 1.3, + 1.3, + 1.3, + 1.6, + 1.9, + 1.4, + 1.6, + 1.4, + 1.5, + 1.4, + 4.7, + 4.5, + 4.9, + 4, + 4.6, + 4.5, + 4.7, + 3.3, + 4.6, + 3.9, + 3.5, + 4.2, + 4, + 4.7, + 3.6, + 4.4, + 4.5, + 4.1, + 4.5, + 3.9, + 4.8, + 4, + 4.9, + 4.7, + 4.3, + 4.4, + 4.8, + 5, + 4.5, + 3.5, + 3.8, + 3.7, + 3.9, + 5.1, + 4.5, + 4.5, + 4.7, + 4.4, + 4.1, + 4, + 4.4, + 4.6, + 4, + 3.3, + 4.2, + 4.2, + 4.2, + 4.3, + 3, + 4.1, + 6, + 5.1, + 5.9, + 5.6, + 5.8, + 6.6, + 4.5, + 6.3, + 5.8, + 6.1, + 5.1, + 5.3, + 5.5, + 5, + 5.1, + 5.3, + 5.5, + 6.7, + 6.9, + 5, + 5.7, + 4.9, + 6.7, + 4.9, + 5.7, + 6, + 4.8, + 4.9, + 5.6, + 5.8, + 6.1, + 6.4, + 5.6, + 5.1, + 5.6, + 6.1, + 5.6, + 5.5, + 4.8, + 5.4, + 5.6, + 5.1, + 5.1, + 5.9, + 5.7, + 5.2, + 5, + 5.2, + 5.4, + 5.1 + ] + }, + { + "label": "Petal Width", + "values": [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.4, + 0.3, + 0.2, + 0.2, + 0.1, + 0.2, + 0.2, + 0.1, + 0.1, + 0.2, + 0.4, + 0.4, + 0.3, + 0.3, + 0.3, + 0.2, + 0.4, + 0.2, + 0.5, + 0.2, + 0.2, + 0.4, + 0.2, + 0.2, + 0.2, + 0.2, + 0.4, + 0.1, + 0.2, + 0.1, + 0.2, + 0.2, + 0.1, + 0.2, + 0.2, + 0.3, + 0.3, + 0.2, + 0.6, + 0.4, + 0.3, + 0.2, + 0.2, + 0.2, + 0.2, + 1.4, + 1.5, + 1.5, + 1.3, + 1.5, + 1.3, + 1.6, + 1, + 1.3, + 1.4, + 1, + 1.5, + 1, + 1.4, + 1.3, + 1.4, + 1.5, + 1, + 1.5, + 1.1, + 1.8, + 1.3, + 1.5, + 1.2, + 1.3, + 1.4, + 1.4, + 1.7, + 1.5, + 1, + 1.1, + 1, + 1.2, + 1.6, + 1.5, + 1.6, + 1.5, + 1.3, + 1.3, + 1.3, + 1.2, + 1.4, + 1.2, + 1, + 1.3, + 1.2, + 1.3, + 1.3, + 1.1, + 1.3, + 2.5, + 1.9, + 2.1, + 1.8, + 2.2, + 2.1, + 1.7, + 1.8, + 1.8, + 2.5, + 2, + 1.9, + 2.1, + 2, + 2.4, + 2.3, + 1.8, + 2.2, + 2.3, + 1.5, + 2.3, + 2, + 2, + 1.8, + 2.1, + 1.8, + 1.8, + 1.8, + 2.1, + 1.6, + 1.9, + 2, + 2.2, + 1.5, + 1.4, + 2.3, + 2.4, + 1.8, + 1.8, + 2.1, + 2.4, + 2.3, + 1.9, + 2.3, + 2.5, + 2.3, + 1.9, + 2, + 2.3, + 1.8 + ] + }, + { + "label": "Species", + "values": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3 + ] + } + ], + "line": { + "color": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3 + ], + "coloraxis": "coloraxis" + }, + "type": "parcoords" + } + ], + "layout": { + "coloraxis": { + "cmid": 2, + "colorbar": { + "title": { + "text": "Species" + } + }, + "colorscale": [ + [ + 0, + "rgb(0, 147, 146)" + ], + [ + 0.16666666666666666, + "rgb(114, 170, 161)" + ], + [ + 0.3333333333333333, + "rgb(177, 199, 179)" + ], + [ + 0.5, + "rgb(241, 234, 200)" + ], + [ + 0.6666666666666666, + "rgb(229, 185, 173)" + ], + [ + 0.8333333333333334, + "rgb(217, 137, 148)" + ], + [ + 1, + "rgb(208, 88, 126)" + ] + ] + }, + "height": 400, + "width": 600, + "margin": { + "t": 60 + } + } +}