Skip to content

Commit 4e4c093

Browse files
committed
Fix carpet label details
1 parent ce290ae commit 4e4c093

File tree

5 files changed

+39
-26
lines changed

5 files changed

+39
-26
lines changed

src/traces/carpet/axis_attributes.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,10 @@ module.exports = {
8484
role: 'style',
8585
description: 'Same as `showtickprefix` but for tick suffixes.'
8686
},
87-
labelfont: extendFlat({}, fontAttrs, {
87+
startlabelfont: extendFlat({}, fontAttrs, {
88+
description: 'Sets the label font.'
89+
}),
90+
endlabelfont: extendFlat({}, fontAttrs, {
8891
description: 'Sets the label font.'
8992
}),
9093
tick0: {

src/traces/carpet/calc_gridlines.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,7 @@ module.exports = function calcGridlines (trace, axisLetter, crossAxisLetter) {
165165
return trace._evalxy([], i0, j0, ti, tj);
166166
};
167167

168-
ret.dxy = function (i) {
169-
var i0 = Math.max(0, Math.min(na - 2, Math.floor(i)));
170-
var ti = Math.min(1, Math.max(0, i - i0));
168+
ret.dxy = function (i0, ti) {
171169
return trace.dxydi([], i0, j0, ti, tj);
172170
};
173171

@@ -188,9 +186,7 @@ module.exports = function calcGridlines (trace, axisLetter, crossAxisLetter) {
188186
}
189187

190188

191-
ret.dxy = function (j) {
192-
var j0 = Math.max(0, Math.min(nb - 2, Math.floor(j)));
193-
var tj = Math.min(1, Math.max(0, j - j0));
189+
ret.dxy = function (j0, tj) {
194190
return trace.dxydj([], i0, j0, ti, tj);
195191
};
196192

src/traces/carpet/calc_labels.js

+23-17
Original file line numberDiff line numberDiff line change
@@ -34,22 +34,28 @@ module.exports = function calcLabels (trace, axis) {
3434
for (i = 0; i < gridlines.length; i++) {
3535
var gridline = gridlines[i];
3636

37-
labels.push({
38-
text: gridline.value.toFixed(3),
39-
endAnchor: true,
40-
xy: gridline.xy(0),
41-
dxy: gridline.dxy(0, 0),
42-
axis: gridline.axis,
43-
length: gridline.crossAxis.length
44-
});
45-
46-
labels.push({
47-
text: gridline.value.toFixed(3),
48-
endAnchor: false,
49-
xy: gridline.xy(gridline.crossLength - 1),
50-
dxy: gridline.dxy(gridline.crossLength - 2, 1),
51-
axis: gridline.axis,
52-
length: gridline.crossAxis.length
53-
});
37+
if (['start', 'both'].indexOf(axis.showlabels) !== -1) {
38+
labels.push({
39+
text: gridline.value.toFixed(3),
40+
endAnchor: true,
41+
xy: gridline.xy(0),
42+
dxy: gridline.dxy(0, 0),
43+
axis: gridline.axis,
44+
length: gridline.crossAxis.length,
45+
font: gridline.crossAxis.startlabelfont
46+
});
47+
}
48+
49+
if (['end', 'both'].indexOf(axis.showlabels) !== -1) {
50+
labels.push({
51+
text: gridline.value.toFixed(3),
52+
endAnchor: false,
53+
xy: gridline.xy(gridline.crossLength - 1),
54+
dxy: gridline.dxy(gridline.crossLength - 2, 1),
55+
axis: gridline.axis,
56+
length: gridline.crossAxis.length,
57+
font: gridline.crossAxis.endlabelfont
58+
});
59+
}
5460
}
5561
};

src/traces/carpet/defaults.js

+9-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,15 @@ function handleAxisDefaults(traceIn, traceOut, axis) {
9494

9595
coerce('labelpadding');
9696

97-
Lib.coerceFont(coerce, 'labelfont', {size: 12});
97+
Lib.coerceFont(coerce, 'startlabelfont', {
98+
size: 12,
99+
color: ax.startlinecolor
100+
});
101+
102+
Lib.coerceFont(coerce, 'endlabelfont', {
103+
size: 12,
104+
color: ax.endlinecolor
105+
});
98106

99107
// Compute which labels to show. In a sense this is sort of a data computation
100108
// that should go in calc.js, but it's so minimal for any conceivable case that

src/traces/carpet/plot.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ function drawAxisLabels(xaxis, yaxis, trace, layer, labels, labelClass) {
154154
.attr('text-anchor', endAnchor ? 'end' : 'start')
155155
.text(prefix + label.text + suffix)
156156
.attr('transform', 'rotate(' + angle + ' ' + xy[0] + ',' + xy[1] + ')')
157-
.call(Drawing.font, ax.labelfont.family, ax.labelfont.size, ax.labelfont.color);
157+
.call(Drawing.font, label.font.family, label.font.size, label.font.color);
158158
});
159159

160160
labelJoin.exit().remove();

0 commit comments

Comments
 (0)