Skip to content

Commit b179558

Browse files
committed
revise pan value using target scale - fix max height calc
1 parent 18c8190 commit b179558

File tree

8 files changed

+215
-8
lines changed

8 files changed

+215
-8
lines changed

src/plots/cartesian/axes.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3837,7 +3837,7 @@ axes.drawLabels = function(gd, ax, opts) {
38373837
}
38383838

38393839
labelsMaxW = Math.max(labelsMaxW, bb.width);
3840-
labelsMaxH = Math.max(labelsMaxW, bb.height);
3840+
labelsMaxH = Math.max(labelsMaxH, bb.height);
38413841
}
38423842
});
38433843

@@ -3866,21 +3866,30 @@ axes.drawLabels = function(gd, ax, opts) {
38663866
if(anchorAx.insiderange) {
38673867
var BBs = computeTickLabelBoundingBoxes();
38683868
var move = ax._id.charAt(0) === 'y' ?
3869-
BBs.labelsMaxW + 4 * TEXTPAD :
3869+
BBs.labelsMaxW :
38703870
BBs.labelsMaxH;
38713871

3872+
move += 2 * TEXTPAD;
3873+
38723874
if(ax.ticklabelposition === 'inside') {
38733875
move += ax.ticklen || 0;
38743876
}
38753877

3876-
if(ax._id.charAt(0) !== 'y') move = -move;
3877-
38783878
var sgn = (ax.side === 'right' || ax.side === 'top') ? 1 : -1;
38793879
var index = sgn === 1 ? 1 : 0;
38803880
var otherIndex = sgn === 1 ? 0 : 1;
38813881

38823882
var newRange = [];
38833883
newRange[otherIndex] = anchorAx.range[otherIndex];
3884+
3885+
var p0 = anchorAx.d2p(anchorAx.range[index]);
3886+
var p1 = anchorAx.d2p(anchorAx.range[otherIndex]);
3887+
3888+
var dist = Math.abs(p1 - p0);
3889+
move *= 1 + move / dist;
3890+
3891+
if(ax._id.charAt(0) !== 'y') move = -move;
3892+
38843893
newRange[index] = anchorAx.p2d(
38853894
anchorAx.d2p(anchorAx.range[index]) +
38863895
sgn * move
38.1 KB
Loading
300 Bytes
Loading
30.3 KB
Loading
260 Bytes
Loading
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
{
2+
"data": [{
3+
"xaxis": "x",
4+
"yaxis": "y",
5+
"y": [1000, 10, 100, 1]
6+
}, {
7+
"xaxis": "x2",
8+
"yaxis": "y2",
9+
"y": [1000, 10, 100, 1]
10+
}, {
11+
"xaxis": "x3",
12+
"yaxis": "y3",
13+
"x": [2000, 2001, 2002, 2003],
14+
"y": [1000, 10, 100, 1]
15+
}, {
16+
"xaxis": "x4",
17+
"yaxis": "y4",
18+
"x": [2000, 2001, 2002, 2003],
19+
"y": [1000, 10, 100, 1]
20+
}],
21+
"layout": {
22+
"xaxis": {
23+
"insiderange": [1, 2],
24+
"anchor": "y",
25+
"domain": [0, 0.45],
26+
"gridcolor": "white"
27+
},
28+
"yaxis": {
29+
"anchor": "x",
30+
"domain": [0, 0.45],
31+
"side": "right",
32+
"ticks": "inside",
33+
"ticklabelposition": "inside",
34+
"ticklen": 8,
35+
"tickwidth": 3,
36+
"gridcolor": "white"
37+
},
38+
"xaxis2": {
39+
"insiderange": [2, 1],
40+
"anchor": "y2",
41+
"domain": [0, 0.45],
42+
"gridcolor": "white"
43+
},
44+
"yaxis2": {
45+
"anchor": "x2",
46+
"domain": [0.55, 1],
47+
"side": "left",
48+
"ticks": "inside",
49+
"ticklabelposition": "inside",
50+
"ticklen": 8,
51+
"tickwidth": 3,
52+
"gridcolor": "white"
53+
},
54+
"xaxis3": {
55+
"type": "date",
56+
"insiderange": ["2001-01", "2002-01"],
57+
"anchor": "y3",
58+
"domain": [0.55, 1],
59+
"gridcolor": "white"
60+
},
61+
"yaxis3": {
62+
"anchor": "x3",
63+
"domain": [0, 0.45],
64+
"side": "right",
65+
"ticks": "inside",
66+
"ticklabelposition": "inside",
67+
"ticklen": 8,
68+
"tickwidth": 3,
69+
"gridcolor": "white"
70+
},
71+
"xaxis4": {
72+
"type": "date",
73+
"insiderange": ["2002-01", "2001-01"],
74+
"anchor": "y4",
75+
"domain": [0.55, 1],
76+
"gridcolor": "white"
77+
},
78+
"yaxis4": {
79+
"anchor": "x4",
80+
"domain": [0.55, 1],
81+
"side": "left",
82+
"ticks": "inside",
83+
"ticklabelposition": "inside",
84+
"ticklen": 8,
85+
"tickwidth": 3,
86+
"gridcolor": "white"
87+
},
88+
"plot_bgcolor": "lightblue",
89+
"showlegend": false,
90+
"width": 360,
91+
"height": 900,
92+
"margin": {
93+
"t": 60,
94+
"b": 60,
95+
"l": 60,
96+
"r": 60
97+
}
98+
}
99+
}
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
{
2+
"data": [{
3+
"yaxis": "y",
4+
"xaxis": "x",
5+
"x": [1000, 10, 100, 1]
6+
}, {
7+
"yaxis": "y2",
8+
"xaxis": "x2",
9+
"x": [1000, 10, 100, 1]
10+
}, {
11+
"yaxis": "y3",
12+
"xaxis": "x3",
13+
"y": [2000, 2001, 2002, 2003],
14+
"x": [1000, 10, 100, 1]
15+
}, {
16+
"yaxis": "y4",
17+
"xaxis": "x4",
18+
"y": [2000, 2001, 2002, 2003],
19+
"x": [1000, 10, 100, 1]
20+
}],
21+
"layout": {
22+
"yaxis": {
23+
"insiderange": [1, 2],
24+
"anchor": "x",
25+
"domain": [0, 0.475],
26+
"gridcolor": "white"
27+
},
28+
"xaxis": {
29+
"anchor": "y",
30+
"domain": [0, 0.475],
31+
"side": "right",
32+
"ticks": "inside",
33+
"ticklabelposition": "inside",
34+
"ticklen": 8,
35+
"tickwidth": 3,
36+
"gridcolor": "white"
37+
},
38+
"yaxis2": {
39+
"insiderange": [2, 1],
40+
"anchor": "x2",
41+
"domain": [0, 0.475],
42+
"gridcolor": "white"
43+
},
44+
"xaxis2": {
45+
"anchor": "y2",
46+
"domain": [0.55, 1],
47+
"side": "left",
48+
"ticks": "inside",
49+
"ticklabelposition": "inside",
50+
"ticklen": 8,
51+
"tickwidth": 3,
52+
"gridcolor": "white"
53+
},
54+
"yaxis3": {
55+
"type": "date",
56+
"insiderange": ["2001-01", "2002-01"],
57+
"anchor": "x3",
58+
"domain": [0.55, 1],
59+
"gridcolor": "white"
60+
},
61+
"xaxis3": {
62+
"anchor": "y3",
63+
"domain": [0, 0.475],
64+
"side": "right",
65+
"ticks": "inside",
66+
"ticklabelposition": "inside",
67+
"ticklen": 8,
68+
"tickwidth": 3,
69+
"gridcolor": "white"
70+
},
71+
"yaxis4": {
72+
"type": "date",
73+
"insiderange": ["2002-01", "2001-01"],
74+
"anchor": "x4",
75+
"domain": [0.55, 1],
76+
"gridcolor": "white"
77+
},
78+
"xaxis4": {
79+
"anchor": "y4",
80+
"domain": [0.55, 1],
81+
"side": "left",
82+
"ticks": "inside",
83+
"ticklabelposition": "inside",
84+
"ticklen": 8,
85+
"tickwidth": 3,
86+
"gridcolor": "white"
87+
},
88+
"plot_bgcolor": "lightblue",
89+
"showlegend": false,
90+
"width": 900,
91+
"height": 360,
92+
"margin": {
93+
"t": 60,
94+
"b": 60,
95+
"l": 60,
96+
"r": 60
97+
}
98+
}
99+
}

test/jasmine/tests/axes_test.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1625,13 +1625,13 @@ describe('Test axes', function() {
16251625
width: 600,
16261626
height: 600
16271627
}).then(function() {
1628-
expect(gd._fullLayout.xaxis.range).toBeCloseToArray([-0.132, 2]);
1628+
expect(gd._fullLayout.xaxis.range).toBeCloseToArray([-0.110, 2]);
16291629

16301630
return Plotly.relayout(gd, {
16311631
'xaxis.insiderange': [1, 3]
16321632
});
16331633
}).then(function() {
1634-
expect(gd._fullLayout.xaxis.range).toBeCloseToArray([0.867, 3]);
1634+
expect(gd._fullLayout.xaxis.range).toBeCloseToArray([0.889, 3]);
16351635
}).then(done, done.fail);
16361636
});
16371637
});
@@ -7981,11 +7981,11 @@ describe('more react tests', function() {
79817981

79827982
Plotly.newPlot(gd, fig1)
79837983
.then(function() {
7984-
expect(gd._fullLayout.xaxis.range).toBeCloseToArray([-0.132, 2]);
7984+
expect(gd._fullLayout.xaxis.range).toBeCloseToArray([-0.110, 2]);
79857985

79867986
return Plotly.react(gd, fig2);
79877987
}).then(function() {
7988-
expect(gd._fullLayout.xaxis.range).toBeCloseToArray([-0.179, 2]);
7988+
expect(gd._fullLayout.xaxis.range).toBeCloseToArray([-0.164, 2]);
79897989
}).then(done, done.fail);
79907990
});
79917991
});

0 commit comments

Comments
 (0)