@@ -384,35 +384,37 @@ module.exports = function setConvert(ax, fullLayout) {
384
384
for ( var k = 0 ; k < fullData [ traceIndices [ 0 ] ] [ axLetter ] . length ; k ++ ) {
385
385
cols . push ( 'col' + k . toString ( ) ) ;
386
386
}
387
+ // Don't think that the trace should be drawn at all if the lengths don't match. Removing the arrays length check. It is better to fail loudly than silently.
387
388
388
389
for ( i = 0 ; i < traceIndices . length ; i ++ ) {
389
390
var trace = fullData [ traceIndices [ i ] ] ;
390
391
391
392
if ( axLetter in trace ) {
392
393
var arrayIn = trace [ axLetter ] ;
394
+ if ( isArrayOrTypedArray ( arrayIn [ 0 ] ) ) {
395
+ var arrays = arrayIn . map ( function ( x ) {
396
+ return x ;
397
+ } ) ;
398
+ arrays . push ( trace . y ) ;
393
399
394
- var arrays = arrayIn . map ( function ( x ) {
395
- return x ;
396
- } ) ;
397
- arrays . push ( trace . y ) ;
400
+ var objList = sortLib . matrixToObjectList ( arrays , cols ) ;
398
401
399
- var objList = sortLib . matrixToObjectList ( arrays , cols ) ;
402
+ Array . prototype . push . apply ( fullObjectList , objList ) ;
400
403
401
- Array . prototype . push . apply ( fullObjectList , objList ) ;
404
+ // convert the trace data from list to object and sort (backwards, stable sort)
405
+ var sortedObjectList = sortLib . sortObjectList ( cols , objList ) ;
406
+ var matrix = sortLib . objectListToList ( sortedObjectList ) ;
407
+ var sortedMatrix = sortLib . sortedMatrix ( matrix ) ;
402
408
403
- // convert the trace data from list to object and sort (backwards, stable sort)
404
- var sortedObjectList = sortLib . sortObjectList ( cols , objList ) ;
405
- var matrix = sortLib . objectListToList ( sortedObjectList ) ;
406
- var sortedMatrix = sortLib . sortedMatrix ( matrix ) ;
409
+ xs = sortedMatrix [ 0 ] . slice ( ) ;
410
+ var y = sortedMatrix [ 1 ] ;
407
411
408
- xs = sortedMatrix [ 0 ] . slice ( ) ;
409
- var y = sortedMatrix [ 1 ] ;
410
-
411
- // Could/should set sorted y axis values for each trace as the sorted values are already available.
412
- // Need write access to gd._fullData, bad?
413
- var transposedXs = sortLib . transpose ( xs ) ;
414
- gd . _fullData [ i ] . x = transposedXs ;
415
- gd . _fullData [ i ] . y = y ;
412
+ // Could/should set sorted y axis values for each trace as the sorted values are already available.
413
+ // Need write access to gd._fullData, bad? Should probably be done right at newPlot, or on setting gd._fullData
414
+ var transposedXs = sortLib . transpose ( xs ) ;
415
+ gd . _fullData [ i ] . x = transposedXs ;
416
+ gd . _fullData [ i ] . y = y ;
417
+ }
416
418
}
417
419
}
418
420
ax . levelNr = xs [ 0 ] . length ;
0 commit comments