Skip to content

Commit 3b7ec42

Browse files
committed
validação list NOT OK
1 parent b81dce1 commit 3b7ec42

File tree

2 files changed

+167
-8
lines changed

2 files changed

+167
-8
lines changed

devtools/test_dashboard/index.html

Lines changed: 162 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,107 @@
3535
// import Plotly from "../../build/plotly.js"
3636
</script>
3737
<script charset="utf-8" src="../../build/test_dashboard-bundle.js"></script>
38+
<script>
39+
function zipArrays(arrays) {
40+
var zipped = arrays[0].map(function (e, i) {
41+
var row = [];
42+
arrays.map(function (arr) {
43+
row.push(arr[i]);
44+
});
45+
return row;
46+
});
47+
return zipped;
48+
}
49+
50+
function sortObjecstByKey(a, b, key) {
51+
if (a[key] === b[key]) return 0;
52+
if (a[key] < b[key]) return -1;
53+
return 1;
54+
}
55+
56+
function matrixToObjectList(matrix, cols) {
57+
var zipped = zipArrays(matrix);
58+
59+
var objList = [];
60+
61+
zipped.forEach(function (row) {
62+
var objRow = {};
63+
cols.forEach(function (col, idx) {
64+
objRow[col] = row[idx];
65+
});
66+
objRow.y = row.at(-1);
67+
objList.push(objRow);
68+
});
69+
return objList;
70+
}
71+
72+
exports.matrixToObjectList = matrixToObjectList;
73+
74+
function sortObjectList(cols, objList) {
75+
var sortedObjectList = objList.map(function (e) {
76+
return e;
77+
});
78+
cols.reverse().forEach(function (key) {
79+
sortedObjectList = sortedObjectList.sort(function (a, b) {
80+
return sortObjecstByKey(a, b, key);
81+
});
82+
});
83+
return sortedObjectList;
84+
}
85+
86+
exports.sortObjectList = sortObjectList;
87+
88+
function objectListToList(objectList) {
89+
var list = [];
90+
objectList.forEach(function (item) {
91+
list.push(Object.values(item));
92+
});
93+
return list;
94+
}
95+
96+
exports.objectListToList = objectListToList;
97+
98+
function sortedMatrix(list) {
99+
var xs = [];
100+
var y = [];
101+
102+
list.slice().forEach(function (item) {
103+
y.push(item.pop());
104+
xs.push(item);
105+
});
106+
107+
return [xs, y];
108+
}
109+
110+
exports.sortedMatrix = sortedMatrix;
111+
112+
function transpose(matrix) {
113+
var width = matrix[0].length;
114+
var newMatrix = [];
115+
116+
// prevent inplace change
117+
for (var row = 0; row < matrix.length; row++) {
118+
newMatrix.push(matrix[row].slice());
119+
}
120+
121+
for (var i = 0; i < newMatrix.length; i++) {
122+
for (var j = 0; j < i; j++) {
123+
newMatrix = newMatrix.slice();
124+
var temp = newMatrix[i][j];
125+
newMatrix[i][j] = newMatrix[j][i];
126+
newMatrix[j][i] = temp;
127+
}
128+
}
129+
130+
newMatrix = newMatrix.slice(0, width);
131+
return newMatrix;
132+
}
133+
134+
function sortTrace(xs) {
135+
136+
137+
}
138+
</script>
38139
<script>
39140
let fullData = [
40141
{
@@ -99,19 +200,78 @@
99200
var trace1 = {
100201
x: [x1, x2],
101202

102-
y: y.slice(0, 12),
203+
y: y.slice(0, 13),
103204
type: "box",
104205
};
105206

106207
var trace2 = {
107208
x: [x1, x2],
108209

109-
y: y.slice(12, 24),
210+
y: y.slice(12, 25),
110211
type: "box",
111212
};
112213

113214
var data = [trace1];
114215

216+
// Plotly.newPlot("tester", data);
217+
</script>
218+
<script>
219+
var trace1 = {
220+
// x: [
221+
// ["SF Zoo", "SF Zoo", "SF Zoo", "LA Zoo"]
222+
// // "LA Zoo", "LA Zoo"],
223+
// [
224+
// "giraffes",
225+
// "orangutans",
226+
// "monkeys",
227+
// "giraffes"
228+
// ],
229+
// // "orangutans",
230+
// // "monkeys",
231+
// ],
232+
// y: [20, 14, 23, 12]
233+
// 18, 29],
234+
// name: "SF Zoo",
235+
// type: "bar",
236+
x: [
237+
["AA", "AA", "AA", "BB"],
238+
["CC", "DD", "EE", "CC"],
239+
],
240+
241+
y: [12, 10, 13, 14],
242+
};
243+
244+
trace = {
245+
x: [
246+
["AA", "AA", "AA", "BB"],
247+
["DD", "CC", "DD", "DD"],
248+
],
249+
250+
y: [12, 10, 13, 14],
251+
};
252+
253+
// var trace2 = {
254+
// x: [
255+
// ["LA Zoo", "LA Zoo", "LA Zoo"],
256+
// ["giraffes", "orangutans", "monkeys"],
257+
// ],
258+
// y: [12, 18, 29],
259+
// name: "LA Zoo",
260+
// // type: "bar",
261+
// };
262+
263+
var data = [trace1];
264+
var layout = {
265+
// showlegend: false,
266+
// xaxis: {
267+
// tickson: "boundaries",
268+
// ticklen: 15,
269+
// showdividers: true,
270+
// dividercolor: "grey",
271+
// dividerwidth: 2,
272+
// },
273+
};
274+
115275
Plotly.newPlot("tester", data);
116276
</script>
117277
</body>

src/plots/cartesian/set_convert.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,6 @@ module.exports = function setConvert(ax, fullLayout) {
363363
};
364364

365365
ax.setupMultiCategory = function(gd) {
366-
console.log(gd)
367366
var fullData = gd._fullData;
368367
var traceIndices = ax._traceIndices;
369368
var i;
@@ -413,17 +412,17 @@ module.exports = function setConvert(ax, fullLayout) {
413412
// Could/should set sorted y axis values for each trace as the sorted values are already available.
414413
// Need write access to gd._fullData
415414
var transposedXs = sortLib.transpose(xs);
416-
// gd._fullData[i].x = transposedXs;
417-
// gd._fullData[i].y = y;
418-
console.log('trace', i);
419-
console.log('gd', gd._fullData[i]);
415+
gd._fullData[i].x = transposedXs;
416+
gd._fullData[i].y = y;
417+
// console.log('trace', i);
418+
// console.log('gd', gd._fullData[i]);
420419
}
421420
}
422421
}
423422
ax.levelNr = xs[0].length;
424423
ax.levels = xs[0].map(function(_, idx) {return idx;});
425424

426-
console.log(fullObjectList);
425+
console.log('fullObjectList', fullObjectList);
427426
var fullSortedObjectList = sortLib.sortObjectList(cols, fullObjectList);
428427
var fullList = sortLib.objectListToList(fullSortedObjectList);
429428
var fullSortedMatrix = sortLib.sortedMatrix(fullList);

0 commit comments

Comments
 (0)