From f9994486ede88fbe7e96de6bb8c5fa7d6fb686bd Mon Sep 17 00:00:00 2001
From: Gilberto Galvis <gilbertogalvis2227@gmail.com>
Date: Mon, 1 Nov 2021 16:31:20 -0400
Subject: [PATCH] fix issue #422

---
 plotly/plotlyfig.m                     |  7 +++++--
 plotly/plotlyfig_aux/core/updateAxis.m | 22 +++++++---------------
 2 files changed, 12 insertions(+), 17 deletions(-)

diff --git a/plotly/plotlyfig.m b/plotly/plotlyfig.m
index 75278c26..156e899e 100644
--- a/plotly/plotlyfig.m
+++ b/plotly/plotlyfig.m
@@ -60,11 +60,10 @@
             obj.PlotOptions.AspectRatio = [];
             obj.PlotOptions.CameraEye = [];
             obj.PlotOptions.is_headmap_axis = false;
-            obj.PlotOptions.Quality = -1;
-            obj.PlotOptions.Zmin = [];
             obj.PlotOptions.FrameDuration = 1;      % in ms.
             obj.PlotOptions.FrameTransitionDuration = 0;      % in ms.
             obj.PlotOptions.geoRenderType = 'geo';
+            obj.PlotOptions.DomainFactor = [1 1 1 1];
             
             % offline options
             obj.PlotOptions.Offline = true;
@@ -274,6 +273,10 @@
                         if(strcmpi(varargin{a},'geoRenderType'))
                             obj.PlotOptions.geoRenderType = varargin{a+1};
                         end
+                        if(strcmpi(varargin{a},'DomainFactor'))
+                            len = length(varargin{a+1});
+                            obj.PlotOptions.DomainFactor(1:len) = varargin{a+1};
+                        end
                     end
             end
             
diff --git a/plotly/plotlyfig_aux/core/updateAxis.m b/plotly/plotlyfig_aux/core/updateAxis.m
index 047a6e2d..5a1d8b46 100644
--- a/plotly/plotlyfig_aux/core/updateAxis.m
+++ b/plotly/plotlyfig_aux/core/updateAxis.m
@@ -89,29 +89,21 @@
 
 %-------------------------------------------------------------------------%
 
-%-getting and setting postion data-%
-xo = axisData.Position(1);
-yo = axisData.Position(2);
-w = axisData.Position(3);
-h = axisData.Position(4);
-
-if obj.PlotOptions.AxisEqual
-    wh = min(axisData.Position(3:4));
-    w = wh;
-    h = wh;
-end
+%-get position data-%
+axisPos = axisData.Position .* obj.PlotOptions.DomainFactor;
+if obj.PlotOptions.AxisEqual, axisPos(3:4) = min(axisPos(3:4)); end
 
 %-------------------------------------------------------------------------%
 
 %-xaxis domain-%
-xaxis.domain = min([xo xo + w],1);
-scene.domain.x = min([xo xo + w],1);
+xaxis.domain = min([axisPos(1) sum(axisPos([1,3]))], 1);
+scene.domain.x = xaxis.domain;
 
 %-------------------------------------------------------------------------%
 
 %-yaxis domain-%
-yaxis.domain = min([yo yo + h],1);
-scene.domain.y = min([yo yo + h],1);
+yaxis.domain = min([axisPos(2) sum(axisPos([2,4]))], 1);
+scene.domain.y = yaxis.domain;
 
 %-------------------------------------------------------------------------%