Skip to content

Commit 36efc91

Browse files
committed
square matrix before transpose
1 parent 630d00a commit 36efc91

File tree

2 files changed

+45
-5
lines changed

2 files changed

+45
-5
lines changed

src/lib/sort_traces.js

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,13 +73,47 @@ function sortedMatrix(list) {
7373

7474
exports.sortedMatrix = sortedMatrix;
7575

76+
function squareMatrix(matrix) {
77+
var width = matrix[0].length;
78+
var height = matrix.length;
79+
80+
if(width === height) {
81+
return matrix;
82+
}
83+
84+
var newMatrix = [];
85+
86+
if(width > height) {
87+
for(var rw = 0; rw < height; rw++) {
88+
newMatrix.push(matrix[rw].slice());
89+
}
90+
for(var i = height; i < width; i++) {
91+
newMatrix.push(Array(width));
92+
}
93+
} else {
94+
for(var row = 0; row < height; row++) {
95+
var rowExpansion = Array(height - width);
96+
var rowSlice = matrix[row].slice();
97+
Array.prototype.push.apply(rowSlice, rowExpansion);
98+
newMatrix.push(rowSlice);
99+
}
100+
}
101+
return newMatrix;
102+
}
103+
104+
exports.squareMatrix = squareMatrix;
105+
76106
function transpose(matrix) {
107+
var height = matrix.length;
77108
var width = matrix[0].length;
109+
110+
var squaredMatrix = squareMatrix(matrix);
111+
78112
var newMatrix = [];
79113

80114
// prevent inplace change
81-
for(var row = 0; row < matrix.length; row++) {
82-
newMatrix.push(matrix[row].slice());
115+
for(var rw = 0; rw < squaredMatrix.length; rw++) {
116+
newMatrix.push(squaredMatrix[rw].slice());
83117
}
84118

85119
for(var i = 0; i < newMatrix.length; i++) {
@@ -90,8 +124,13 @@ function transpose(matrix) {
90124
newMatrix[j][i] = temp;
91125
}
92126
}
93-
94-
newMatrix = newMatrix.slice(0, width);
127+
if(width > height) {
128+
for(var row = 0; row < newMatrix.length; row++) {
129+
newMatrix[row] = newMatrix[row].slice(0, height);
130+
}
131+
} else {
132+
newMatrix = newMatrix.slice(0, width);
133+
}
95134
return newMatrix;
96135
}
97136

src/plots/cartesian/set_convert.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,6 @@ module.exports = function setConvert(ax, fullLayout) {
389389
var trace = fullData[traceIndices[i]];
390390

391391
if(axLetter in trace) {
392-
// debugger;
393392
var arrayIn = trace[axLetter];
394393
console.log(arrayIn);
395394
// var arrayIn = trace[axLetter].slice(0, 2);
@@ -414,7 +413,9 @@ module.exports = function setConvert(ax, fullLayout) {
414413

415414
// Could/should set sorted y axis values for each trace as the sorted values are already available.
416415
// Need write access to gd._fullData
416+
417417
var transposedXs = sortLib.transpose(xs);
418+
// debugger;
418419
gd._fullData[i].x = transposedXs;
419420
gd._fullData[i].y = y;
420421
// console.log('trace', i);

0 commit comments

Comments
 (0)