@@ -52,6 +52,20 @@ def get_label(args, column):
52
52
return column
53
53
54
54
55
+ def get_decorated_label (args , column , role ):
56
+ label = get_label (args , column )
57
+ if "histfunc" in args and (
58
+ (role == "x" and args ["orientation" ] == "h" )
59
+ or (role == "y" and args ["orientation" ] == "v" )
60
+ ):
61
+ if label :
62
+ return "%s of %s" % (args ["histfunc" ] or "count" , label )
63
+ else :
64
+ return "count"
65
+ else :
66
+ return label
67
+
68
+
55
69
def make_mapping (args , variable ):
56
70
if variable == "line_group" or variable == "animation_frame" :
57
71
return Mapping (
@@ -98,7 +112,7 @@ def make_trace_kwargs(args, trace_spec, g, mapping_labels, sizeref, color_range)
98
112
hover_header = ""
99
113
for k in trace_spec .attrs :
100
114
v = args [k ]
101
- v_label = get_label (args , v )
115
+ v_label = get_decorated_label (args , v , k )
102
116
if k == "dimensions" :
103
117
result ["dimensions" ] = [
104
118
dict (
@@ -119,7 +133,7 @@ def make_trace_kwargs(args, trace_spec, g, mapping_labels, sizeref, color_range)
119
133
or len (args ["data_frame" ][name ].unique ()) <= 20
120
134
)
121
135
]
122
- elif v :
136
+ elif v or ( trace_spec . constructor == go . Histogram and k in [ "x" , "y" ]) :
123
137
if k == "size" :
124
138
if "marker" not in result :
125
139
result ["marker" ] = dict ()
@@ -209,7 +223,8 @@ def make_trace_kwargs(args, trace_spec, g, mapping_labels, sizeref, color_range)
209
223
result [k ] = g [v ]
210
224
mapping_labels .append (("%s=%%{%s}" % (v_label , "location" ), None ))
211
225
else :
212
- result [k ] = g [v ]
226
+ if v :
227
+ result [k ] = g [v ]
213
228
mapping_labels .append (("%s=%%{%s}" % (v_label , k ), None ))
214
229
if trace_spec .constructor not in [
215
230
go .Box ,
@@ -315,7 +330,9 @@ def configure_cartesian_axes(args, fig, axes, orders):
315
330
layout ["grid" ][letter + "axes" ].append (letter_number )
316
331
axis = letter_number .replace (letter , letter + "axis" )
317
332
318
- layout [axis ] = dict (title = get_label (args , args [letter ]))
333
+ layout [axis ] = dict (
334
+ title = get_decorated_label (args , args [letter ], letter )
335
+ )
319
336
if len (letter_number ) == 1 :
320
337
set_cartesian_axis_opts (args , layout , letter , axis , orders )
321
338
else :
0 commit comments