diff --git a/src/plots/cartesian/index.js b/src/plots/cartesian/index.js index b8f28c6ba6f..36f1db2384b 100644 --- a/src/plots/cartesian/index.js +++ b/src/plots/cartesian/index.js @@ -568,7 +568,10 @@ function makeSubplotLayer(gd, plotinfo) { var yLayer = constants.layerValue2layerClass[plotinfo.yaxis.layer]; var hasOnlyLargeSploms = fullLayout._hasOnlyLargeSploms; - if(!plotinfo.mainplot || fullLayout._zindices.length > 1) { + var hasMultipleZ = fullLayout._zindices.length > 1; + var mainplotinfo = plotinfo.mainplotinfo; + + if(!plotinfo.mainplot || hasMultipleZ) { if(hasOnlyLargeSploms) { // TODO could do even better // - we don't need plot (but we would have to mock it in lsInner @@ -585,9 +588,15 @@ function makeSubplotLayer(gd, plotinfo) { plotinfo.shapelayer = ensureSingle(backLayer, 'g', 'shapelayer'); plotinfo.imagelayer = ensureSingle(backLayer, 'g', 'imagelayer'); - plotinfo.minorGridlayer = ensureSingle(plotgroup, 'g', 'minor-gridlayer'); - plotinfo.gridlayer = ensureSingle(plotgroup, 'g', 'gridlayer'); - plotinfo.zerolinelayer = ensureSingle(plotgroup, 'g', 'zerolinelayer'); + if(mainplotinfo && hasMultipleZ) { + plotinfo.minorGridlayer = mainplotinfo.minorGridlayer; + plotinfo.gridlayer = mainplotinfo.gridlayer; + plotinfo.zerolinelayer = mainplotinfo.zerolinelayer; + } else { + plotinfo.minorGridlayer = ensureSingle(plotgroup, 'g', 'minor-gridlayer'); + plotinfo.gridlayer = ensureSingle(plotgroup, 'g', 'gridlayer'); + plotinfo.zerolinelayer = ensureSingle(plotgroup, 'g', 'zerolinelayer'); + } var betweenLayer = ensureSingle(plotgroup, 'g', 'layer-between'); plotinfo.shapelayerBetween = ensureSingle(betweenLayer, 'g', 'shapelayer'); @@ -622,7 +631,6 @@ function makeSubplotLayer(gd, plotinfo) { } } } else { - var mainplotinfo = plotinfo.mainplotinfo; var mainplotgroup = mainplotinfo.plotgroup; var xId = id + '-x'; var yId = id + '-y'; diff --git a/test/image/baselines/zorder-overlayed-subplots-multiple-traces-main-subplot.png b/test/image/baselines/zorder-overlayed-subplots-multiple-traces-main-subplot.png index 5cb4ebb5b11..388bd44ec30 100644 Binary files a/test/image/baselines/zorder-overlayed-subplots-multiple-traces-main-subplot.png and b/test/image/baselines/zorder-overlayed-subplots-multiple-traces-main-subplot.png differ