Skip to content

Commit 6c7db5e

Browse files
committed
fix #3579 - consider tick labels to go past plot area
... in axis automargin computations. Add two mocks to lock this down!
1 parent 98d9baa commit 6c7db5e

File tree

5 files changed

+242
-0
lines changed

5 files changed

+242
-0
lines changed

src/plots/cartesian/axes.js

+24
Original file line numberDiff line numberDiff line change
@@ -1984,6 +1984,30 @@ axes.drawOne = function(gd, ax, opts) {
19841984
if(ax.title.text !== fullLayout._dfltTitle[axLetter]) {
19851985
push[s] += ax.title.font.size;
19861986
}
1987+
1988+
if(axLetter === 'x' && bbox.width > 0) {
1989+
var rExtra = bbox.right - (ax._offset + ax._length);
1990+
if(rExtra > 0) {
1991+
push.x = 1;
1992+
push.r = rExtra;
1993+
}
1994+
var lExtra = ax._offset - bbox.left;
1995+
if(lExtra > 0) {
1996+
push.x = 0;
1997+
push.l = lExtra;
1998+
}
1999+
} else if(axLetter === 'y' && bbox.height > 0) {
2000+
var bExtra = bbox.bottom - (ax._offset + ax._length);
2001+
if(bExtra > 0) {
2002+
push.y = 0;
2003+
push.b = bExtra;
2004+
}
2005+
var tExtra = ax._offset - bbox.top;
2006+
if(tExtra > 0) {
2007+
push.y = 1;
2008+
push.t = tExtra;
2009+
}
2010+
}
19872011
}
19882012

19892013
Plots.autoMargin(gd, axAutoMarginID(ax), push);
46.7 KB
Loading
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
{
2+
"data": [
3+
{
4+
"x": [
5+
"12 AM diagonal",
6+
"1 AM diagonal",
7+
"2 AM diagonal",
8+
"3 AM diagonal",
9+
"4 AM diagonal",
10+
"5 AM diagonal",
11+
"6 AM diagonal",
12+
"7 AM diagonal",
13+
"8 AM diagonal",
14+
"9 AM diagonal",
15+
"10 AM diagonal",
16+
"11 AM diagonal"
17+
],
18+
"y": [
19+
59.44,
20+
68.75,
21+
87.5,
22+
100.5,
23+
95.56,
24+
92.8,
25+
85.25,
26+
77.4,
27+
76.4,
28+
73.94,
29+
74.56,
30+
81.06
31+
]
32+
},
33+
{
34+
"x": [
35+
"12 AM diagonal",
36+
"1 AM diagonal",
37+
"2 AM diagonal",
38+
"3 AM diagonal",
39+
"4 AM diagonal",
40+
"5 AM diagonal",
41+
"6 AM diagonal",
42+
"7 AM diagonal",
43+
"8 AM diagonal",
44+
"9 AM diagonal",
45+
"10 AM diagonal",
46+
"11 AM diagonal"
47+
],
48+
"y": [
49+
59.44,
50+
68.75,
51+
87.5,
52+
100.5,
53+
95.56,
54+
92.8,
55+
85.25,
56+
77.4,
57+
76.4,
58+
73.94,
59+
74.56,
60+
81.06
61+
],
62+
"xaxis": "x2",
63+
"yaxis": "y2"
64+
}
65+
],
66+
"layout": {
67+
"grid": {
68+
"columns": 2,
69+
"rows": 1,
70+
"pattern": "independent"
71+
},
72+
"margin": {
73+
"l": 0,
74+
"r": 0,
75+
"t": 0,
76+
"b": 0
77+
},
78+
"xaxis": {
79+
"showgrid": false,
80+
"showline": true,
81+
"zeroline": true,
82+
"automargin": true,
83+
"side": "top",
84+
"tickangle": 45
85+
},
86+
"yaxis": {
87+
"side": "right",
88+
"showgrid": false,
89+
"showline": true,
90+
"zeroline": true,
91+
"automargin": true
92+
},
93+
"xaxis2": {
94+
"showgrid": false,
95+
"showline": true,
96+
"zeroline": true,
97+
"automargin": true,
98+
"tickangle": 45
99+
},
100+
"yaxis2": {
101+
"side": "left",
102+
"showgrid": false,
103+
"showline": true,
104+
"zeroline": true,
105+
"automargin": true
106+
},
107+
"showlegend": false
108+
}
109+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
{
2+
"data": [
3+
{
4+
"y": [
5+
"12 AM diagonal",
6+
"1 AM diagonal",
7+
"2 AM diagonal",
8+
"3 AM diagonal",
9+
"4 AM diagonal",
10+
"5 AM diagonal",
11+
"6 AM diagonal",
12+
"7 AM diagonal",
13+
"8 AM diagonal",
14+
"9 AM diagonal",
15+
"10 AM diagonal",
16+
"11 AM diagonal"
17+
],
18+
"x": [
19+
59.44,
20+
68.75,
21+
87.5,
22+
100.5,
23+
95.56,
24+
92.8,
25+
85.25,
26+
77.4,
27+
76.4,
28+
73.94,
29+
74.56,
30+
81.06
31+
]
32+
},
33+
{
34+
"y": [
35+
"12 AM diagonal",
36+
"1 AM diagonal",
37+
"2 AM diagonal",
38+
"3 AM diagonal",
39+
"4 AM diagonal",
40+
"5 AM diagonal",
41+
"6 AM diagonal",
42+
"7 AM diagonal",
43+
"8 AM diagonal",
44+
"9 AM diagonal",
45+
"10 AM diagonal",
46+
"11 AM diagonal"
47+
],
48+
"x": [
49+
81.06,
50+
74.56,
51+
73.94,
52+
76.4,
53+
77.4,
54+
85.25,
55+
92.8,
56+
95.56,
57+
100.5,
58+
87.5,
59+
68.75,
60+
59.44
61+
],
62+
"xaxis": "x2",
63+
"yaxis": "y2"
64+
}
65+
],
66+
"layout": {
67+
"grid": {
68+
"columns": 1,
69+
"rows": 2,
70+
"pattern": "independent"
71+
},
72+
"margin": {
73+
"l": 0,
74+
"r": 0,
75+
"t": 0,
76+
"b": 0
77+
},
78+
"xaxis": {
79+
"showgrid": false,
80+
"showline": true,
81+
"zeroline": true,
82+
"automargin": true,
83+
"side": "bottom"
84+
},
85+
"yaxis": {
86+
"side": "right",
87+
"showgrid": false,
88+
"showline": true,
89+
"zeroline": true,
90+
"automargin": true,
91+
"tickangle": -45
92+
},
93+
"xaxis2": {
94+
"showgrid": false,
95+
"showline": true,
96+
"zeroline": true,
97+
"automargin": true,
98+
"side": "top"
99+
},
100+
"yaxis2": {
101+
"showgrid": false,
102+
"showline": true,
103+
"zeroline": true,
104+
"automargin": true,
105+
"tickangle": -45
106+
},
107+
"showlegend": false
108+
}
109+
}

0 commit comments

Comments
 (0)