From e8cbfbf943231ddde4e2a5f8049d0b471d432f7d Mon Sep 17 00:00:00 2001 From: hannahker Date: Fri, 26 May 2023 16:15:03 -0400 Subject: [PATCH 1/7] Only account for reservedMargins if autoexpand is on --- src/plots/plots.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/plots/plots.js b/src/plots/plots.js index 45900550cfb..eddfd944651 100644 --- a/src/plots/plots.js +++ b/src/plots/plots.js @@ -2010,11 +2010,14 @@ plots.doAutoMargin = function(gd) { var reservedMargins = {t: 0, b: 0, l: 0, r: 0}; var oldMargins = Lib.extendFlat({}, gs); - var margins = gd._fullLayout._reservedMargin; - for(var key in margins) { - for(var side in margins[key]) { - var val = margins[key][side]; - reservedMargins[side] = Math.max(reservedMargins[side], val); + // only account for reservedMargins if autoexpand + if(margin.autoexpand === true) { + var margins = gd._fullLayout._reservedMargin; + for(var key in margins) { + for(var side in margins[key]) { + var val = margins[key][side]; + reservedMargins[side] = Math.max(reservedMargins[side], val); + } } } // adjust margins for outside components From 2d468c9229ee2981dc2141e3015773b01de3428c Mon Sep 17 00:00:00 2001 From: hannahker Date: Mon, 29 May 2023 10:28:53 -0700 Subject: [PATCH 2/7] Make sure that only minimum required reserved margin is applied --- src/plots/plots.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/plots/plots.js b/src/plots/plots.js index eddfd944651..a1aaba89e2b 100644 --- a/src/plots/plots.js +++ b/src/plots/plots.js @@ -2011,7 +2011,7 @@ plots.doAutoMargin = function(gd) { var oldMargins = Lib.extendFlat({}, gs); // only account for reservedMargins if autoexpand - if(margin.autoexpand === true) { + if(margin.autoexpand !== false) { var margins = gd._fullLayout._reservedMargin; for(var key in margins) { for(var side in margins[key]) { @@ -2048,6 +2048,20 @@ plots.doAutoMargin = function(gd) { // now cycle through all the combinations of l and r // (and t and b) to find the required margins + // make sure that the reservedMargin is the minimum needed + for(var s in reservedMargins) { + var autoMarginPush = 0; + for(var m in pushMargin) { + if(m !== 'base') { + if(isNumeric(pushMargin[m][s].size)) { + autoMarginPush += pushMargin[m][s].size; + } + } + } + var extraMargin = Math.max(0, (margin[s] - autoMarginPush)); + reservedMargins[s] = Math.max(0, reservedMargins[s] - extraMargin); + } + for(var k1 in pushMargin) { var pushleft = pushMargin[k1].l || {}; var pushbottom = pushMargin[k1].b || {}; From ba410a80e5cdbf1b12d5689c22352d9f8970ba19 Mon Sep 17 00:00:00 2001 From: hannahker Date: Tue, 30 May 2023 15:59:38 -0700 Subject: [PATCH 3/7] Add new image test --- ...-container-colorbar-vertical-w-margin.json | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 test/image/mocks/zz-container-colorbar-vertical-w-margin.json diff --git a/test/image/mocks/zz-container-colorbar-vertical-w-margin.json b/test/image/mocks/zz-container-colorbar-vertical-w-margin.json new file mode 100644 index 00000000000..e504f7434ef --- /dev/null +++ b/test/image/mocks/zz-container-colorbar-vertical-w-margin.json @@ -0,0 +1,48 @@ +{ + "data": [ + { + "colorbar": { + "orientation": "v", + "xref": "container", + "x": 1, + "thickness": 10, + "ticks": "outside", + "bgcolor": "rgba(255,255,0,0.5)", + "borderwidth": 4, + "bordercolor": "gray", + "title": { + "side": "top", + "text": "Colorbar
title", + "font": { + "size": 16 + } + } + }, + "z": [ + [ + 1, + 3, + 5 + ], + [ + 4, + 7, + 10 + ], + [ + 7, + 11, + 14 + ] + ], + "type": "heatmap" + } + ], + "layout": { + "margin": {"l": 0, "r": 148, "t": 0, "b": 0}, + "height": 300, + "width": 400, + "yaxis": {"automargin": true, "side": "right", "title": {"text": "Y-axis title"}}, + "title": {"text": "Colorbar with `xref='container'` | vertical | margin", "automargin": true} + } +} From 3c70b49bae00221b54cc7fbecf182fce83cf2194 Mon Sep 17 00:00:00 2001 From: hannahker Date: Tue, 30 May 2023 16:00:09 -0700 Subject: [PATCH 4/7] Clean code --- src/plots/plots.js | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/plots/plots.js b/src/plots/plots.js index a1aaba89e2b..e8376573753 100644 --- a/src/plots/plots.js +++ b/src/plots/plots.js @@ -2010,16 +2010,6 @@ plots.doAutoMargin = function(gd) { var reservedMargins = {t: 0, b: 0, l: 0, r: 0}; var oldMargins = Lib.extendFlat({}, gs); - // only account for reservedMargins if autoexpand - if(margin.autoexpand !== false) { - var margins = gd._fullLayout._reservedMargin; - for(var key in margins) { - for(var side in margins[key]) { - var val = margins[key][side]; - reservedMargins[side] = Math.max(reservedMargins[side], val); - } - } - } // adjust margins for outside components // fullLayout.margin is the requested margin, // fullLayout._size has margins and plotsize after adjustment @@ -2032,11 +2022,18 @@ plots.doAutoMargin = function(gd) { var minreducedwidth = fullLayout.minreducedwidth; var minreducedheight = fullLayout.minreducedheight; - if(fullLayout.margin.autoexpand !== false) { + if(margin.autoexpand !== false) { for(var k in pushMargin) { if(!pushMarginIds[k]) delete pushMargin[k]; } + var margins = gd._fullLayout._reservedMargin; + for(var key in margins) { + for(var side in margins[key]) { + var val = margins[key][side]; + reservedMargins[side] = Math.max(reservedMargins[side], val); + } + } // fill in the requested margins pushMargin.base = { l: {val: 0, size: ml}, @@ -2045,8 +2042,6 @@ plots.doAutoMargin = function(gd) { b: {val: 0, size: mb} }; - // now cycle through all the combinations of l and r - // (and t and b) to find the required margins // make sure that the reservedMargin is the minimum needed for(var s in reservedMargins) { @@ -2062,6 +2057,8 @@ plots.doAutoMargin = function(gd) { reservedMargins[s] = Math.max(0, reservedMargins[s] - extraMargin); } + // now cycle through all the combinations of l and r + // (and t and b) to find the required margins for(var k1 in pushMargin) { var pushleft = pushMargin[k1].l || {}; var pushbottom = pushMargin[k1].b || {}; From 7522e709ac27743e0b375837e596fcfb82ade959 Mon Sep 17 00:00:00 2001 From: Mojtaba Samimi Date: Wed, 31 May 2023 14:18:38 -0400 Subject: [PATCH 5/7] add baseline --- .../zz-container-colorbar-vertical-w-margin.png | Bin 0 -> 18890 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/image/baselines/zz-container-colorbar-vertical-w-margin.png diff --git a/test/image/baselines/zz-container-colorbar-vertical-w-margin.png b/test/image/baselines/zz-container-colorbar-vertical-w-margin.png new file mode 100644 index 0000000000000000000000000000000000000000..44cb49a978977987ddcc0db63ae2bd4533210853 GIT binary patch literal 18890 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 Date: Thu, 1 Jun 2023 11:46:58 -0700 Subject: [PATCH 6/7] Switch calculation to max instead of sum --- src/plots/plots.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/plots.js b/src/plots/plots.js index e8376573753..2feb453c40d 100644 --- a/src/plots/plots.js +++ b/src/plots/plots.js @@ -2049,7 +2049,7 @@ plots.doAutoMargin = function(gd) { for(var m in pushMargin) { if(m !== 'base') { if(isNumeric(pushMargin[m][s].size)) { - autoMarginPush += pushMargin[m][s].size; + autoMarginPush = pushMargin[m][s].size > autoMarginPush ? pushMargin[m][s].size : autoMarginPush; } } } From 3e8ddd911e65adff8602b8c59dfd69c9cef1eaf1 Mon Sep 17 00:00:00 2001 From: hannahker Date: Thu, 1 Jun 2023 15:08:45 -0700 Subject: [PATCH 7/7] Add changelog --- draftlogs/6616_fix.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 draftlogs/6616_fix.md diff --git a/draftlogs/6616_fix.md b/draftlogs/6616_fix.md new file mode 100644 index 00000000000..183bb498e7e --- /dev/null +++ b/draftlogs/6616_fix.md @@ -0,0 +1 @@ +- Ensure that only minimum margin spacing is added for container-referenced legends and colorbars [[#6616](https://github.com/plotly/plotly.js/pull/6616)] \ No newline at end of file