diff --git a/src/plot_api/subroutines.js b/src/plot_api/subroutines.js index b71404050ef..8607065f898 100644 --- a/src/plot_api/subroutines.js +++ b/src/plot_api/subroutines.js @@ -702,6 +702,7 @@ exports.doAutoRangeAndConstraints = function(gd) { var axList = Axes.list(gd, '', true); var matchGroups = fullLayout._axisMatchGroups || []; var ax; + var axRng; for(var i = 0; i < axList.length; i++) { ax = axList[i]; @@ -721,23 +722,24 @@ exports.doAutoRangeAndConstraints = function(gd) { ax = Axes.getFromId(gd, id); if(ax.autorange === false) continue groupLoop; + axRng = Lib.simpleMap(ax.range, ax.r2l); if(rng) { if(rng[0] < rng[1]) { - rng[0] = Math.min(rng[0], ax.range[0]); - rng[1] = Math.max(rng[1], ax.range[1]); + rng[0] = Math.min(rng[0], axRng[0]); + rng[1] = Math.max(rng[1], axRng[1]); } else { - rng[0] = Math.max(rng[0], ax.range[0]); - rng[1] = Math.min(rng[1], ax.range[1]); + rng[0] = Math.max(rng[0], axRng[0]); + rng[1] = Math.min(rng[1], axRng[1]); } } else { - rng = ax.range; + rng = axRng; } } for(id in group) { ax = Axes.getFromId(gd, id); - ax.range = rng.slice(); - ax._input.range = rng.slice(); + ax.range = Lib.simpleMap(rng, ax.l2r); + ax._input.range = ax.range.slice(); ax.setScale(); } } diff --git a/test/image/baselines/axes_linked_date_autorange.png b/test/image/baselines/axes_linked_date_autorange.png new file mode 100644 index 00000000000..46b9e97cb94 Binary files /dev/null and b/test/image/baselines/axes_linked_date_autorange.png differ diff --git a/test/image/mocks/axes_linked_date_autorange.json b/test/image/mocks/axes_linked_date_autorange.json new file mode 100644 index 00000000000..1ec89a5475c --- /dev/null +++ b/test/image/mocks/axes_linked_date_autorange.json @@ -0,0 +1,50 @@ +{ + "data": [ + { + "x": [ + "2019-04-01", + "2019-04-02", + "2019-04-03" + ], + "y": [ + 1, + 2, + 3 + ], + "type": "scatter" + }, + { + "x": [ + "2019-04-06", + "2019-04-07", + "2019-04-08" + ], + "y": [ + 4, + 5, + 6 + ], + "xaxis": "x2", + "type": "scatter" + } + ], + "layout": { + "xaxis": { + "autorange": true, + "domain": [ + 0, + 0.45 + ], + "type": "date" + }, + "xaxis2": { + "autorange": true, + "domain": [ + 0.55, + 1.0 + ], + "matches": "x", + "type": "date" + } + } +}