Skip to content

Commit 11b9434

Browse files
committed
mock separated linear axes for every dimension
1 parent 75f692d commit 11b9434

9 files changed

+27
-28
lines changed

src/traces/parcoords/parcoords.js

+27-28
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ function someFiltersActive(view) {
134134
});
135135
}
136136

137-
function model(layout, d, i) {
137+
function model(layout, fullLayout, d, i) {
138138
var cd0 = unwrap(d);
139139
var trace = cd0.trace;
140140
var lineColor = helpers.convertTypedArray(cd0.lineColor);
@@ -168,6 +168,16 @@ function model(layout, d, i) {
168168
var rowContentWidth = groupWidth;
169169
var rowHeight = groupHeight;
170170

171+
for(var k = 0; k < dimensions.length; k++) {
172+
var dim = dimensions[k];
173+
dim._ax = {
174+
type: 'linear',
175+
showexponent: 'all',
176+
exponentformat: 'B'
177+
};
178+
Axes.setConvert(dim._ax, fullLayout);
179+
}
180+
171181
return {
172182
key: i,
173183
colCount: dimensions.filter(helpers.isVisible).length,
@@ -378,39 +388,28 @@ function updatePanelLayout(yAxis, vm) {
378388
}
379389
}
380390

381-
var linearAxis;
382-
383-
function linearFormat(v, tickformat) {
384-
linearAxis.tickformat = tickformat;
385-
386-
return Axes.tickText(
387-
linearAxis,
388-
linearAxis.d2l(v),
389-
true
390-
).text;
391-
}
392-
393-
function extremeText(d, isTop) {
394-
if(d.ordinal) return '';
395-
var domain = d.domainScale.domain();
396-
var v = (domain[isTop ? domain.length - 1 : 0]);
397-
return linearFormat(v, d.tickFormat);
398-
}
399-
400391
module.exports = function parcoords(gd, cdModule, layout, callbacks) {
401392
var state = parcoordsInteractionState();
402393

403394
var fullLayout = gd._fullLayout;
404395
var svg = fullLayout._toppaper;
405396
var glContainer = fullLayout._glcontainer;
406397

407-
// mock one linear axes for tick formatting
408-
linearAxis = { type: 'linear', showexponent: 'all', exponentformat: 'B' };
409-
Axes.setConvert(linearAxis, fullLayout);
398+
function linearFormat(dim, v) {
399+
return Axes.tickText(dim._ax, v, true).text;
400+
}
401+
402+
function extremeText(d, i, isTop) {
403+
if(d.ordinal) return '';
404+
var domain = d.domainScale.domain();
405+
var v = (domain[isTop ? domain.length - 1 : 0]);
406+
407+
return linearFormat(d.model.dimensions[i], v);
408+
}
410409

411410
var vm = cdModule
412411
.filter(function(d) { return unwrap(d).trace.visible; })
413-
.map(model.bind(0, layout))
412+
.map(model.bind(0, layout, fullLayout))
414413
.map(viewModel.bind(0, state, callbacks));
415414

416415
glContainer.each(function(d, i) {
@@ -590,7 +589,7 @@ module.exports = function parcoords(gd, cdModule, layout, callbacks) {
590589
.classed(c.cn.axis, true);
591590

592591
axis
593-
.each(function(d) {
592+
.each(function(d, i) {
594593
var wantedTickCount = d.model.height / d.model.tickDistance;
595594
var scale = d.domainScale;
596595
var sdom = scale.domain();
@@ -604,7 +603,7 @@ module.exports = function parcoords(gd, cdModule, layout, callbacks) {
604603
sdom :
605604
null)
606605
.tickFormat(function(v) {
607-
return d.ordinal ? v : linearFormat(v, d.tickFormat);
606+
return helpers.isOrdinal(d) ? v : linearFormat(d.model.dimensions[i], v);
608607
})
609608
.scale(scale));
610609
Drawing.font(axis.selectAll('text'), d.model.tickFont);
@@ -693,7 +692,7 @@ module.exports = function parcoords(gd, cdModule, layout, callbacks) {
693692
.call(styleExtentTexts);
694693

695694
axisExtentTopText
696-
.text(function(d) { return extremeText(d, true); })
695+
.text(function(d, i) { return extremeText(d, i, true); })
697696
.each(function(d) { Drawing.font(d3.select(this), d.model.rangeFont); });
698697

699698
var axisExtentBottom = axisExtent.selectAll('.' + c.cn.axisExtentBottom)
@@ -718,7 +717,7 @@ module.exports = function parcoords(gd, cdModule, layout, callbacks) {
718717
.call(styleExtentTexts);
719718

720719
axisExtentBottomText
721-
.text(function(d) { return extremeText(d); })
720+
.text(function(d, i) { return extremeText(d, i, false); })
722721
.each(function(d) { Drawing.font(d3.select(this), d.model.rangeFont); });
723722

724723
brush.ensureAxisBrush(axisOverlays);
269 Bytes
Loading
Loading
-1019 Bytes
Loading
-495 Bytes
Loading
811 Bytes
Loading
Loading
-1019 Bytes
Loading
Loading

0 commit comments

Comments
 (0)