diff --git a/draftlogs/6910_fix.md b/draftlogs/6910_fix.md new file mode 100644 index 00000000000..6b503f2f5b2 --- /dev/null +++ b/draftlogs/6910_fix.md @@ -0,0 +1 @@ + - Fix `insiderange` with category axes [[#6910](https://github.com/plotly/plotly.js/pull/6910)] diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index ba8faae29c4..2d86405eb12 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -3907,13 +3907,13 @@ axes.drawLabels = function(gd, ax, opts) { var anchorAxRange = anchorAx.range; - var p0 = anchorAx.d2p(anchorAxRange[index]); - var p1 = anchorAx.d2p(anchorAxRange[otherIndex]); + var p0 = anchorAx.r2p(anchorAxRange[index]); + var p1 = anchorAx.r2p(anchorAxRange[otherIndex]); var _tempNewRange = fullLayout._insideTickLabelsUpdaterange[anchorAx._name + '.range']; if(_tempNewRange) { // case of having multiple anchored axes having insideticklabel - var q0 = anchorAx.d2p(_tempNewRange[index]); - var q1 = anchorAx.d2p(_tempNewRange[otherIndex]); + var q0 = anchorAx.r2p(_tempNewRange[index]); + var q1 = anchorAx.r2p(_tempNewRange[otherIndex]); var dir = sgn * (ax._id.charAt(0) === 'y' ? 1 : -1); @@ -3938,8 +3938,8 @@ axes.drawLabels = function(gd, ax, opts) { if(ax._id.charAt(0) !== 'y') move = -move; - newRange[index] = anchorAx.p2d( - anchorAx.d2p(anchorAxRange[index]) + + newRange[index] = anchorAx.p2r( + anchorAx.r2p(anchorAxRange[index]) + sgn * move ); diff --git a/test/image/baselines/zz-insiderange-category.png b/test/image/baselines/zz-insiderange-category.png new file mode 100644 index 00000000000..2964d7b2e8e Binary files /dev/null and b/test/image/baselines/zz-insiderange-category.png differ diff --git a/test/image/mocks/zz-insiderange-category.json b/test/image/mocks/zz-insiderange-category.json new file mode 100644 index 00000000000..f7bb097e92c --- /dev/null +++ b/test/image/mocks/zz-insiderange-category.json @@ -0,0 +1,34 @@ +{ + "data": [ + { + "name": "bar", + "x": [ + "A", + "B", + "C", + "D" + ], + "y": [ + 50, + 70, + 90, + 35 + ], + "type": "bar" + } + ], + "layout": { + "xaxis": { + "type": "category", + "insiderange": [ + 1, + 2 + ] + }, + "yaxis": { + "side": "right", + "ticklabelposition": "inside top" + }, + "width": 400 + } +}