Skip to content

Commit 02a176a

Browse files
committed
handle multicategory labels in funnel and waterfall textinfo
1 parent b93e3a5 commit 02a176a

File tree

3 files changed

+16
-14
lines changed

3 files changed

+16
-14
lines changed

src/traces/bar/plot.js

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,12 @@ var Drawing = require('../../components/drawing');
2020
var Registry = require('../../registry');
2121
var tickText = require('../../plots/cartesian/axes').tickText;
2222

23+
var style = require('./style');
24+
var helpers = require('./helpers');
2325
var attributes = require('./attributes');
26+
2427
var attributeText = attributes.text;
2528
var attributeTextPosition = attributes.textposition;
26-
var style = require('./style');
27-
var helpers = require('./helpers');
2829

2930
// padding in pixels around text
3031
var TEXTPAD = 3;
@@ -513,6 +514,11 @@ function calcTextinfo(calcTrace, index, xa, ya) {
513514
var trace = calcTrace[0].trace;
514515
var isHorizontal = (trace.orientation === 'h');
515516

517+
function formatLabel(u) {
518+
var pAxis = isHorizontal ? ya : xa;
519+
return tickText(pAxis, u, true).text; // TODO: may pass false here to drop the parent category?
520+
}
521+
516522
function formatNumber(v) {
517523
var sAxis = isHorizontal ? xa : ya;
518524
return tickText(sAxis, +v, true).text;
@@ -528,12 +534,7 @@ function calcTextinfo(calcTrace, index, xa, ya) {
528534
var hasFlag = function(flag) { return parts.indexOf(flag) !== -1; };
529535

530536
if(hasFlag('label')) {
531-
// TODO: fix me to work with multicategory
532-
if(isHorizontal) {
533-
text.push(trace.y[index]);
534-
} else {
535-
text.push(trace.x[index]);
536-
}
537+
text.push(formatLabel(calcTrace[index].p));
537538
}
538539

539540
if(hasFlag('text')) {
8.31 KB
Loading

test/image/mocks/funnel_multicategory.json

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
"type": "funnel", "opacity": 0.8, "offset": -0.5, "width": 0.5, "orientation": "v",
55
"cliponaxis": false,
66
"textposition": "inside",
7-
"textinfo": "value+percent initial",
8-
"text": ["winter 2017", "spring 2017", "summer 2017", "autumn 2017", "winter 2018", "spring 2018", "summer 2018", "autumn 2018"],
7+
"textinfo": "label+value+percent initial",
8+
"text": ["winter", "spring", "summer", "autumn", "winter", "spring", "summer", "autumn"],
99
"x": [
1010
["2017", "2017", "2017", "2017", "2018", "2018", "2018", "2018"],
1111
["q1", "q2", "q3", "q4", "q1", "q2", "q3", "q4"]
@@ -16,8 +16,8 @@
1616
"type": "funnel", "opacity": 0.8, "offset": -0.5, "width": 0.5, "orientation": "v",
1717
"cliponaxis": false,
1818
"textposition": "outside",
19-
"textinfo": "text+value+percent initial",
20-
"text": ["winter 2017", "spring 2017", "summer 2017", "autumn 2017", "winter 2018", "spring 2018", "summer 2018", "autumn 2018"],
19+
"textinfo": "label+text+value+percent initial",
20+
"text": ["winter", "spring", "summer", "autumn", "winter", "spring", "summer", "autumn"],
2121
"x": [
2222
["2017", "2017", "2017", "2017", "2018", "2018", "2018", "2018"],
2323
["q1", "q2", "q3", "q4", "q1", "q2", "q3", "q4"]
@@ -28,8 +28,8 @@
2828
"type": "waterfall", "opacity": 0.8, "offset": 0.0, "width": 0.5,
2929
"cliponaxis": false,
3030
"textposition": "inside",
31-
"textinfo": "text+final",
32-
"text": ["winter 2017", "spring 2017", "summer 2017", "autumn 2017", "winter 2018", "spring 2018", "summer 2018", "autumn 2018"],
31+
"textinfo": "label+text+final",
32+
"text": ["winter", "spring", "summer", "autumn", "winter", "spring", "summer", "autumn"],
3333
"x": [
3434
["2017", "2017", "2017", "2017", "2018", "2018", "2018", "2018"],
3535
["q1", "q2", "q3", "q4", "q1", "q2", "q3", "q4"]
@@ -38,6 +38,7 @@
3838
}
3939
],
4040
"layout": {
41+
"hovermode": "closest",
4142
"width": 1800,
4243
"height": 600,
4344
"margin": { "l": 50, "r": 50, "t": 50, "b": 50 },

0 commit comments

Comments
 (0)