Skip to content

Commit

Permalink
pprint_value_unit func for printing value and unit
Browse files Browse the repository at this point in the history
  • Loading branch information
DancingQuanta committed Sep 28, 2019
1 parent 91259b9 commit 681a666
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 8 deletions.
15 changes: 14 additions & 1 deletion holoviews/core/dimension.py
Expand Up @@ -421,9 +421,22 @@ def pprint_value(self, value):
return formatter % value
return unicode(bytes_to_unicode(value))

def pprint_value_string(self, value):
def pprint_value_unit(self, value):
"""Pretty print the dimension value and unit.
Args:
value: Dimension value to format
Returns:
Dimension value string with unit string
"""
unit = '' if self.unit is None else ' ' + bytes_to_unicode(self.unit)
value = self.pprint_value(value)
return value + unit

def pprint_value_string(self, value):
"""Pretty print the dimension value and unit with title_format
Args:
value: Dimension value to format
Expand Down
2 changes: 1 addition & 1 deletion holoviews/plotting/bokeh/element.py
Expand Up @@ -1089,7 +1089,7 @@ def _glyph_properties(self, plot, element, source, ranges, style, group=None):
properties = dict(style, source=source)
if self.show_legend:
if self.overlay_dims:
legend = ', '.join([d.pprint_value(v) for d, v in
legend = ', '.join([d.pprint_value_unit(v) for d, v in
self.overlay_dims.items()])
else:
legend = element.label
Expand Down
4 changes: 1 addition & 3 deletions holoviews/plotting/bokeh/sankey.py
Expand Up @@ -153,13 +153,11 @@ def _compute_labels(self, element, data, mapping):
else:
label = ''
if self.show_values:
value = value_dim.pprint_value(node['value'])
value = value_dim.pprint_value_unit(node['value'])
if label:
label = '%s - %s' % (label, value)
else:
label = value
if value_dim.unit:
label += ' %s' % value_dim.unit
if label:
text_labels.append(label)

Expand Down
5 changes: 2 additions & 3 deletions holoviews/plotting/mpl/element.py
Expand Up @@ -1038,9 +1038,8 @@ def _adjust_legend(self, overlay, axis):
handle = subplot.traverse(lambda p: p.handles['artist'],
[lambda p: 'artist' in p.handles])
if isinstance(overlay, NdOverlay):
key = (dim.pprint_value(k) for k, dim in zip(key, dimensions))
label = ','.join([str(k) + dim.unit if dim.unit else str(k) for dim, k in
zip(dimensions, key)])
label = ','.join([dim.pprint_value_unit(k)
for k, dim in zip(key, dimensions)])
if handle:
legend_data.append((handle, label))
else:
Expand Down
2 changes: 2 additions & 0 deletions holoviews/tests/core/testndmapping.py
Expand Up @@ -27,6 +27,8 @@ def test_dimension_pprint(self):
dim = Dimension('Test dimension', cyclic=True, type=float, unit='Twilight zones')
self.assertEqual(dim.pprint_value_string(3.23451), 'Test dimension: 3.2345 Twilight zones')
self.assertEqual(dim.pprint_value_string(4.23441), 'Test dimension: 4.2344 Twilight zones')
self.assertEqual(dim.pprint_value_unit(3.23451), '3.2345 Twilight zones')
self.assertEqual(dim.pprint_value_unit(4.23441), '4.2344 Twilight zones')


class NdIndexableMappingTest(ComparisonTestCase):
Expand Down

0 comments on commit 681a666

Please sign in to comment.