Skip to content

Commit 9291457

Browse files
authored
Merge pull request #5331 from plotly/nonnegative-inside-ticklabels
Handle case of nonnegative or tozero rangemodes for inside ticklabels
2 parents 6a4a6c5 + 4bb0995 commit 9291457

File tree

5 files changed

+287
-7
lines changed

5 files changed

+287
-7
lines changed

src/plots/cartesian/autorange.js

+10-7
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ function getAutoRange(gd, ax) {
120120
} else if(dv / axLen > mbest) {
121121
// in case of padding longer than the axis
122122
// at least include the unpadded data values.
123-
minbest = {val: minpt.val, pad: 0};
124-
maxbest = {val: maxpt.val, pad: 0};
123+
minbest = {val: minpt.val, nopad: 1};
124+
maxbest = {val: maxpt.val, nopad: 1};
125125
mbest = dv / axLen;
126126
}
127127
}
@@ -158,17 +158,17 @@ function getAutoRange(gd, ax) {
158158
} else {
159159
if(toZero) {
160160
if(minbest.val >= 0) {
161-
minbest = {val: 0, pad: 0};
161+
minbest = {val: 0, nopad: 1};
162162
}
163163
if(maxbest.val <= 0) {
164-
maxbest = {val: 0, pad: 0};
164+
maxbest = {val: 0, nopad: 1};
165165
}
166166
} else if(nonNegative) {
167167
if(minbest.val - mbest * getPadMin(minbest) < 0) {
168-
minbest = {val: 0, pad: 0};
168+
minbest = {val: 0, nopad: 1};
169169
}
170170
if(maxbest.val <= 0) {
171-
maxbest = {val: 1, pad: 0};
171+
maxbest = {val: 1, nopad: 1};
172172
}
173173
}
174174

@@ -240,7 +240,10 @@ function makePadFn(fullLayout, ax, max) {
240240
(ax.domain[1] - ax.domain[0]);
241241
}
242242

243-
return function getPad(pt) { return pt.pad + (pt.extrapad ? extrappad : zero); };
243+
return function getPad(pt) {
244+
if(pt.nopad) return 0;
245+
return pt.pad + (pt.extrapad ? extrappad : zero);
246+
};
244247
}
245248

246249
var TEXTPAD = 3;
112 KB
Loading
73.4 KB
Loading
+187
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
{
2+
"data": [{
3+
"xaxis": "x",
4+
"yaxis": "y",
5+
"type": "bar",
6+
"orientation": "h",
7+
"x": [
8+
67.5,
9+
23.3,
10+
5.2,
11+
1.8,
12+
0.8,
13+
0.7,
14+
0.23,
15+
0.1,
16+
0.1
17+
],
18+
"y": [
19+
"Hydro",
20+
"Solid biomass",
21+
"Wind",
22+
"Ethanol",
23+
"Renewable municipal waste",
24+
"Solar thermal",
25+
"Biodiesel",
26+
"Solar photovoltaic",
27+
"Tidal"
28+
]
29+
}, {
30+
"xaxis": "x2",
31+
"yaxis": "y2",
32+
"type": "bar",
33+
"orientation": "h",
34+
"x": [
35+
67.5,
36+
23.3,
37+
5.2,
38+
1.8,
39+
0.8,
40+
0.7,
41+
0.23,
42+
0.1,
43+
0.1
44+
],
45+
"y": [
46+
"Hydro",
47+
"Solid biomass",
48+
"Wind",
49+
"Ethanol",
50+
"Renewable municipal waste",
51+
"Solar thermal",
52+
"Biodiesel",
53+
"Solar photovoltaic",
54+
"Tidal"
55+
]
56+
}, {
57+
"xaxis": "x3",
58+
"yaxis": "y3",
59+
"type": "bar",
60+
"orientation": "v",
61+
"y": [
62+
67.5,
63+
23.3,
64+
5.2,
65+
1.8,
66+
0.8,
67+
0.7,
68+
0.23,
69+
0.1,
70+
0.1
71+
],
72+
"x": [
73+
"Hydro",
74+
"Solid biomass",
75+
"Wind",
76+
"Ethanol",
77+
"Renewable municipal waste",
78+
"Solar thermal",
79+
"Biodiesel",
80+
"Solar photovoltaic",
81+
"Tidal"
82+
]
83+
}, {
84+
"xaxis": "x4",
85+
"yaxis": "y4",
86+
"type": "bar",
87+
"orientation": "v",
88+
"y": [
89+
67.5,
90+
23.3,
91+
5.2,
92+
1.8,
93+
0.8,
94+
0.7,
95+
0.23,
96+
0.1,
97+
0.1
98+
],
99+
"x": [
100+
"Hydro",
101+
"Solid biomass",
102+
"Wind",
103+
"Ethanol",
104+
"Renewable municipal waste",
105+
"Solar thermal",
106+
"Biodiesel",
107+
"Solar photovoltaic",
108+
"Tidal"
109+
]
110+
}],
111+
"layout": {
112+
"xaxis": {
113+
"rangemode": "nonnegative",
114+
"anchor": "y",
115+
"domain": [0, 0.475],
116+
"side": "bottom",
117+
"ticklabelposition": "outside",
118+
"gridcolor": "white"
119+
},
120+
"yaxis": {
121+
"anchor": "x",
122+
"domain": [0, 0.475],
123+
"side": "left",
124+
"ticklabelposition": "inside",
125+
"gridcolor": "white"
126+
},
127+
"xaxis2": {
128+
"rangemode": "nonnegative",
129+
"anchor": "y2",
130+
"domain": [0.525, 1],
131+
"side": "bottom",
132+
"ticklabelposition": "inside",
133+
"gridcolor": "white"
134+
},
135+
"yaxis2": {
136+
"anchor": "x2",
137+
"domain": [0, 0.475],
138+
"side": "right",
139+
"ticklabelposition": "inside",
140+
"gridcolor": "white"
141+
},
142+
"xaxis3": {
143+
"anchor": "y3",
144+
"domain": [0.525, 1],
145+
"side": "top",
146+
"ticklabelposition": "inside",
147+
"gridcolor": "white"
148+
},
149+
"yaxis3": {
150+
"rangemode": "nonnegative",
151+
"anchor": "x3",
152+
"domain": [0.525, 1],
153+
"side": "right",
154+
"ticklabelposition": "inside",
155+
"gridcolor": "white"
156+
},
157+
"xaxis4": {
158+
"anchor": "y4",
159+
"domain": [0, 0.475],
160+
"side": "top",
161+
"ticklabelposition": "inside",
162+
"gridcolor": "white"
163+
},
164+
"yaxis4": {
165+
"autorange": "reversed",
166+
"rangemode": "nonnegative",
167+
"anchor": "x4",
168+
"domain": [0.525, 1],
169+
"side": "left",
170+
"ticklabelposition": "outside",
171+
"gridcolor": "white"
172+
},
173+
"font": {
174+
"size": 16
175+
},
176+
"plot_bgcolor": "lightblue",
177+
"showlegend": false,
178+
"width": 800,
179+
"height": 800,
180+
"margin": {
181+
"t": 40,
182+
"b": 40,
183+
"l": 40,
184+
"r": 40
185+
}
186+
}
187+
}
+90
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
{
2+
"data": [{
3+
"xaxis": "x",
4+
"yaxis": "y",
5+
"orientation": "h",
6+
"x": [0.4, 0.5, 0.6, 0.7, 0.8],
7+
"y": ["Oo", "Pp", "Qq", "Rr", "Ss"]
8+
}, {
9+
"xaxis": "x2",
10+
"yaxis": "y2",
11+
"orientation": "h",
12+
"x": [0.4, 0.5, 0.6, 0.7, 0.8],
13+
"y": ["Oo", "Pp", "Qq", "Rr", "Ss"]
14+
}, {
15+
"xaxis": "x3",
16+
"yaxis": "y3",
17+
"orientation": "v",
18+
"y": [0.4, 0.5, 0.6, 0.7, 0.8],
19+
"x": ["Oo", "Pp", "Qq", "Rr", "Ss"]
20+
}, {
21+
"xaxis": "x4",
22+
"yaxis": "y4",
23+
"orientation": "v",
24+
"y": [0.4, 0.5, 0.6, 0.7, 0.8],
25+
"x": ["Oo", "Pp", "Qq", "Rr", "Ss"]
26+
}],
27+
"layout": {
28+
"xaxis": {
29+
"rangemode": "nonnegative",
30+
"anchor": "y",
31+
"domain": [0, 0.475],
32+
"gridcolor": "white"
33+
},
34+
"yaxis": {
35+
"anchor": "x",
36+
"domain": [0, 0.475],
37+
"ticklabelposition": "inside",
38+
"gridcolor": "white"
39+
},
40+
"xaxis2": {
41+
"rangemode": "tozero",
42+
"anchor": "y2",
43+
"domain": [0.525, 1],
44+
"gridcolor": "white"
45+
},
46+
"yaxis2": {
47+
"anchor": "x2",
48+
"domain": [0, 0.475],
49+
"ticklabelposition": "inside",
50+
"gridcolor": "white"
51+
},
52+
"xaxis3": {
53+
"anchor": "y3",
54+
"domain": [0.525, 1],
55+
"ticklabelposition": "inside",
56+
"gridcolor": "white"
57+
},
58+
"yaxis3": {
59+
"rangemode": "nonnegative",
60+
"anchor": "x3",
61+
"domain": [0.525, 1],
62+
"gridcolor": "white"
63+
},
64+
"xaxis4": {
65+
"anchor": "y4",
66+
"domain": [0, 0.475],
67+
"ticklabelposition": "inside",
68+
"gridcolor": "white"
69+
},
70+
"yaxis4": {
71+
"rangemode": "tozero",
72+
"anchor": "x4",
73+
"domain": [0.525, 1],
74+
"gridcolor": "white"
75+
},
76+
"font": {
77+
"size": 20
78+
},
79+
"plot_bgcolor": "lightblue",
80+
"showlegend": false,
81+
"width": 800,
82+
"height": 800,
83+
"margin": {
84+
"t": 40,
85+
"b": 40,
86+
"l": 40,
87+
"r": 40
88+
}
89+
}
90+
}

0 commit comments

Comments
 (0)