diff --git a/src/plots/cartesian/set_convert.js b/src/plots/cartesian/set_convert.js index 16a9f571ef7..d3471547328 100644 --- a/src/plots/cartesian/set_convert.js +++ b/src/plots/cartesian/set_convert.js @@ -448,11 +448,15 @@ module.exports = function setConvert(ax, fullLayout) { ax.isPtWithinRange = function(d, calendar) { var coord = ax.c2l(d[axLetter], null, calendar); - - return ( - coord >= ax.r2l(ax.range[0]) && - coord <= ax.r2l(ax.range[1]) - ); + var r0 = ax.r2l(ax.range[0]); + var r1 = ax.r2l(ax.range[1]); + + if(r0 < r1) { + return r0 <= coord && coord <= r1; + } else { + // Reversed axis case. + return r1 <= coord && coord <= r0; + } }; ax.clearCalc = function() { diff --git a/test/image/baselines/bar_cliponaxis-false.png b/test/image/baselines/bar_cliponaxis-false.png index 1fbbcb499d7..a6c0cfefd0c 100644 Binary files a/test/image/baselines/bar_cliponaxis-false.png and b/test/image/baselines/bar_cliponaxis-false.png differ diff --git a/test/image/mocks/bar_cliponaxis-false.json b/test/image/mocks/bar_cliponaxis-false.json index 374094e2647..c99745492fe 100644 --- a/test/image/mocks/bar_cliponaxis-false.json +++ b/test/image/mocks/bar_cliponaxis-false.json @@ -36,6 +36,18 @@ "cliponaxis": true, "textfont": {"size": [20]}, "marker": {"opacity": 0.3} + }, + { + "type": "bar", + "name": "should see text", + "x": ["banana"], + "y": [1], + "text": ["banana"], + "textposition": "outside", + "cliponaxis": false, + "textfont": {"size": [20]}, + "xaxis": "x3", + "yaxis": "y3" } ], "layout": { @@ -51,7 +63,7 @@ "showticklabels": false, "mirror": true, "layer": "below traces", - "domain": [0, 0.48] + "domain": [0, 0.38] }, "xaxis2": { "anchor": "y2", @@ -59,7 +71,15 @@ "showticklabels": false, "mirror": true, "layer": "below traces", - "domain": [0.52, 1] + "domain": [0.42, 0.80] + }, + "xaxis3": { + "anchor": "y3", + "showline": true, + "showticklabels": false, + "mirror": true, + "layer": "below traces", + "domain": [0.84, 1] }, "yaxis": { "showline": true, @@ -74,7 +94,14 @@ "layer": "below traces", "range": [0, 2] }, - "width": 700, + "yaxis3": { + "anchor": "x3", + "showline": true, + "mirror": true, + "layer": "below traces", + "range": [2, 0] + }, + "width": 800, "height": 400, "margin": {"t": 40}, "dragmode": "pan"