Skip to content

Commit 60360ea

Browse files
committed
remove null from axis array trace OK
1 parent 25016f2 commit 60360ea

File tree

3 files changed

+28
-6
lines changed

3 files changed

+28
-6
lines changed

devtools/test_dashboard/index.html

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,17 @@
239239
</script>
240240
<script>
241241
let data3 = [{ x: ["a", "b", "c"], base: [0.2, -0.2, 1], type: "bar" }];
242-
Plotly.newPlot("tester", data3);
242+
// Plotly.newPlot("tester", data3);
243+
</script>
244+
<script>
245+
let data4 = {
246+
x: [
247+
["1", "1", "null", "2"],
248+
["a", "b", "a", "b"],
249+
],
250+
y: [1, 2, 3, 4],
251+
};
252+
Plotly.newPlot("tester", [data4]);
243253
</script>
244254
</body>
245255
</html>

src/lib/sort_traces.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,18 @@ function objectListToList(objectList) {
5959

6060
exports.objectListToList = objectListToList;
6161

62-
function sortedMatrix(list) {
62+
function sortedMatrix(list, removeNull) {
6363
var xs = [];
6464
var y = [];
6565

6666
list.slice().forEach(function(item) {
67-
y.push(item.pop());
67+
var val = item.pop();
68+
69+
if(removeNull & item.includes(null)) {
70+
return;
71+
}
72+
73+
y.push(val);
6874
xs.push(item);
6975
});
7076

src/plots/cartesian/set_convert.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,10 @@ module.exports = function setConvert(ax, fullLayout) {
364364

365365
ax.setupMultiCategory = function(gd) {
366366
var fullData = gd._fullData;
367+
// axes_test should set up category maps correctly for multicategory axes
368+
if(!fullData) {
369+
fullData = gd;
370+
}
367371
var traceIndices = ax._traceIndices;
368372
var i;
369373

@@ -411,7 +415,7 @@ module.exports = function setConvert(ax, fullLayout) {
411415
arrays.push(trace.y);
412416
valLetter = 'y';
413417
} else {
414-
var nullArray = arrayIn.map(function() {return null;});
418+
var nullArray = arrayIn[0].map(function() {return null;});
415419
arrays.push(nullArray);
416420
}
417421
var objList = sortLib.matrixToObjectList(arrays, cols);
@@ -441,7 +445,9 @@ module.exports = function setConvert(ax, fullLayout) {
441445
// Need write access to gd._fullData, bad? Should probably be done right at newPlot, or on setting gd._fullData
442446

443447
var transposedAxLabels = sortLib.transpose(axLabels);
444-
gd._fullData[i][axLetter] = transposedAxLabels;
448+
if(gd._fullData) {
449+
gd._fullData[i][axLetter] = transposedAxLabels;
450+
}
445451
if(valLetter) {
446452
gd._fullData[i][valLetter] = axVals;
447453
}
@@ -453,7 +459,7 @@ module.exports = function setConvert(ax, fullLayout) {
453459

454460
var fullSortedObjectList = sortLib.sortObjectList(cols, fullObjectList.slice());
455461
var fullList = sortLib.objectListToList(fullSortedObjectList);
456-
var fullSortedMatrix = sortLib.sortedMatrix(fullList);
462+
var fullSortedMatrix = sortLib.sortedMatrix(fullList, true);
457463

458464
var fullXs = fullSortedMatrix[0].slice();
459465

0 commit comments

Comments
 (0)