@@ -165,15 +165,26 @@ var gridAttrs = {
165165 editType : 'plot'
166166} ;
167167
168+ function getAxes ( layout , grid , axLetter ) {
169+ var gridVal = grid [ axLetter + 'axes' ] ;
170+ var splomVal = Object . keys ( ( layout . _splomAxes || { } ) [ axLetter ] || { } ) ;
171+
172+ if ( Array . isArray ( gridVal ) ) return gridVal ;
173+ if ( splomVal . length ) return splomVal ;
174+ }
175+
168176// the shape of the grid - this needs to be done BEFORE supplyDataDefaults
169177// so that non-subplot traces can place themselves in the grid
170178function sizeDefaults ( layoutIn , layoutOut ) {
171- var gridIn = layoutIn . grid ;
172- if ( ! gridIn ) return ;
179+ var gridIn = layoutIn . grid || { } ;
180+ var xAxes = getAxes ( layoutOut , gridIn , 'x' ) ;
181+ var yAxes = getAxes ( layoutOut , gridIn , 'y' ) ;
182+
183+ if ( ! layoutIn . grid && ! xAxes && ! yAxes ) return ;
173184
174185 var hasSubplotGrid = Array . isArray ( gridIn . subplots ) && Array . isArray ( gridIn . subplots [ 0 ] ) ;
175- var hasXaxes = Array . isArray ( gridIn . xaxes ) ;
176- var hasYaxes = Array . isArray ( gridIn . yaxes ) ;
186+ var hasXaxes = Array . isArray ( xAxes ) ;
187+ var hasYaxes = Array . isArray ( yAxes ) ;
177188
178189 var dfltRows , dfltColumns ;
179190
@@ -182,8 +193,8 @@ function sizeDefaults(layoutIn, layoutOut) {
182193 dfltColumns = gridIn . subplots [ 0 ] . length ;
183194 }
184195 else {
185- if ( hasYaxes ) dfltRows = gridIn . yaxes . length ;
186- if ( hasXaxes ) dfltColumns = gridIn . xaxes . length ;
196+ if ( hasYaxes ) dfltRows = yAxes . length ;
197+ if ( hasXaxes ) dfltColumns = xAxes . length ;
187198 }
188199
189200 var gridOut = layoutOut . grid = { } ;
@@ -236,7 +247,7 @@ function contentDefaults(layoutIn, layoutOut) {
236247 // make sure we got to the end of handleGridSizing
237248 if ( ! gridOut || ! gridOut . _domains ) return ;
238249
239- var gridIn = layoutIn . grid ;
250+ var gridIn = layoutIn . grid || { } ;
240251 var subplots = layoutOut . _subplots ;
241252 var hasSubplotGrid = gridOut . _hasSubplotGrid ;
242253 var rows = gridOut . rows ;
@@ -282,8 +293,10 @@ function contentDefaults(layoutIn, layoutOut) {
282293 }
283294 }
284295 else {
285- gridOut . xaxes = fillGridAxes ( gridIn . xaxes , subplots . xaxis , columns , axisMap , 'x' ) ;
286- gridOut . yaxes = fillGridAxes ( gridIn . yaxes , subplots . yaxis , rows , axisMap , 'y' ) ;
296+ var xAxes = getAxes ( layoutOut , gridIn , 'x' ) ;
297+ var yAxes = getAxes ( layoutOut , gridIn , 'y' ) ;
298+ gridOut . xaxes = fillGridAxes ( xAxes , subplots . xaxis , columns , axisMap , 'x' ) ;
299+ gridOut . yaxes = fillGridAxes ( yAxes , subplots . yaxis , rows , axisMap , 'y' ) ;
287300 }
288301
289302 var anchors = gridOut . _anchors = { } ;
0 commit comments