@@ -296,6 +296,8 @@ function makeSubplotData(gd) {
296296function makeSubplotLayer ( plotinfo ) {
297297 var plotgroup = plotinfo . plotgroup ;
298298 var id = plotinfo . id ;
299+ var xLayer = constants . layerValue2layerClass [ plotinfo . xaxis . layer ] ;
300+ var yLayer = constants . layerValue2layerClass [ plotinfo . yaxis . layer ] ;
299301
300302 if ( ! plotinfo . mainplot ) {
301303 var backLayer = joinLayer ( plotgroup , 'g' , 'layer-subplot' ) ;
@@ -308,19 +310,36 @@ function makeSubplotLayer(plotinfo) {
308310 plotinfo . zerolinelayer = joinLayer ( plotgroup , 'g' , 'zerolinelayer' ) ;
309311 plotinfo . overzero = joinLayer ( plotgroup , 'g' , 'overzero' ) ;
310312
313+ joinLayer ( plotgroup , 'path' , 'xlines-below' ) ;
314+ joinLayer ( plotgroup , 'path' , 'ylines-below' ) ;
315+ plotinfo . overlinesBelow = joinLayer ( plotgroup , 'g' , 'overlines-below' ) ;
316+
317+ joinLayer ( plotgroup , 'g' , 'xaxislayer-below' ) ;
318+ joinLayer ( plotgroup , 'g' , 'yaxislayer-below' ) ;
319+ plotinfo . overaxesBelow = joinLayer ( plotgroup , 'g' , 'overaxes-below' ) ;
320+
311321 plotinfo . plot = joinLayer ( plotgroup , 'g' , 'plot' ) ;
312322 plotinfo . overplot = joinLayer ( plotgroup , 'g' , 'overplot' ) ;
313323
314- plotinfo . xlines = joinLayer ( plotgroup , 'path' , 'xlines' ) ;
315- plotinfo . ylines = joinLayer ( plotgroup , 'path' , 'ylines' ) ;
316- plotinfo . overlines = joinLayer ( plotgroup , 'g' , 'overlines' ) ;
324+ joinLayer ( plotgroup , 'path' , 'xlines-above' ) ;
325+ joinLayer ( plotgroup , 'path' , 'ylines-above' ) ;
326+ plotinfo . overlinesAbove = joinLayer ( plotgroup , 'g' , 'overlines-above' ) ;
327+
328+ joinLayer ( plotgroup , 'g' , 'xaxislayer-above' ) ;
329+ joinLayer ( plotgroup , 'g' , 'yaxislayer-above' ) ;
330+ plotinfo . overaxesAbove = joinLayer ( plotgroup , 'g' , 'overaxes-above' ) ;
317331
318- plotinfo . xaxislayer = joinLayer ( plotgroup , 'g' , 'xaxislayer' ) ;
319- plotinfo . yaxislayer = joinLayer ( plotgroup , 'g' , 'yaxislayer' ) ;
320- plotinfo . overaxes = joinLayer ( plotgroup , 'g' , 'overaxes' ) ;
332+ // set refs to correct layers as determined by 'axis.layer'
333+ plotinfo . xlines = plotgroup . select ( '.xlines-' + xLayer ) ;
334+ plotinfo . ylines = plotgroup . select ( '.ylines-' + yLayer ) ;
335+ plotinfo . xaxislayer = plotgroup . select ( '.xaxislayer-' + xLayer ) ;
336+ plotinfo . yaxislayer = plotgroup . select ( '.yaxislayer-' + yLayer ) ;
321337 }
322338 else {
323339 var mainplotinfo = plotinfo . mainplotinfo ;
340+ var mainplotgroup = mainplotinfo . plotgroup ;
341+ var xId = id + '-x' ;
342+ var yId = id + '-y' ;
324343
325344 // now make the components of overlaid subplots
326345 // overlays don't have backgrounds, and append all
@@ -330,17 +349,29 @@ function makeSubplotLayer(plotinfo) {
330349 plotinfo . gridlayer = joinLayer ( mainplotinfo . overgrid , 'g' , id ) ;
331350 plotinfo . zerolinelayer = joinLayer ( mainplotinfo . overzero , 'g' , id ) ;
332351
352+ joinLayer ( mainplotinfo . overlinesBelow , 'path' , xId ) ;
353+ joinLayer ( mainplotinfo . overlinesBelow , 'path' , yId ) ;
354+ joinLayer ( mainplotinfo . overaxesBelow , 'g' , xId ) ;
355+ joinLayer ( mainplotinfo . overaxesBelow , 'g' , yId ) ;
356+
333357 plotinfo . plot = joinLayer ( mainplotinfo . overplot , 'g' , id ) ;
334- plotinfo . xlines = joinLayer ( mainplotinfo . overlines , 'path' , id + '-x' ) ;
335- plotinfo . ylines = joinLayer ( mainplotinfo . overlines , 'path' , id + '-y' ) ;
336- plotinfo . xaxislayer = joinLayer ( mainplotinfo . overaxes , 'g' , id + '-x' ) ;
337- plotinfo . yaxislayer = joinLayer ( mainplotinfo . overaxes , 'g' , id + '-y' ) ;
358+
359+ joinLayer ( mainplotinfo . overlinesAbove , 'path' , xId ) ;
360+ joinLayer ( mainplotinfo . overlinesAbove , 'path' , yId ) ;
361+ joinLayer ( mainplotinfo . overaxesAbove , 'g' , xId ) ;
362+ joinLayer ( mainplotinfo . overaxesAbove , 'g' , yId ) ;
363+
364+ // set refs to correct layers as determined by 'abovetraces'
365+ plotinfo . xlines = mainplotgroup . select ( '.overlines-' + xLayer ) . select ( '.' + xId ) ;
366+ plotinfo . ylines = mainplotgroup . select ( '.overlines-' + yLayer ) . select ( '.' + yId ) ;
367+ plotinfo . xaxislayer = mainplotgroup . select ( '.overaxes-' + xLayer ) . select ( '.' + xId ) ;
368+ plotinfo . yaxislayer = mainplotgroup . select ( '.overaxes-' + yLayer ) . select ( '.' + yId ) ;
338369 }
339370
340371 // common attributes for all subplots, overlays or not
341372
342- for ( var i = 0 ; i < constants . layers . length ; i ++ ) {
343- joinLayer ( plotinfo . plot , 'g' , constants . layers [ i ] ) ;
373+ for ( var i = 0 ; i < constants . traceLayerClasses . length ; i ++ ) {
374+ joinLayer ( plotinfo . plot , 'g' , constants . traceLayerClasses [ i ] ) ;
344375 }
345376
346377 plotinfo . xlines
0 commit comments