From c0c23997e750ab0417e1719e4f89b0b225773f7c Mon Sep 17 00:00:00 2001
From: Philipp Rudiger
Date: Mon, 25 Sep 2017 14:48:01 +0100
Subject: [PATCH] Fixed bug in Graph edge hover info
---
holoviews/plotting/bokeh/graphs.py | 4 +++-
tests/testbokehgraphs.py | 9 +++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/holoviews/plotting/bokeh/graphs.py b/holoviews/plotting/bokeh/graphs.py
index f1fc62d6d7..16e279290d 100644
--- a/holoviews/plotting/bokeh/graphs.py
+++ b/holoviews/plotting/bokeh/graphs.py
@@ -59,7 +59,9 @@ def _hover_opts(self, element):
if self.inspection_policy == 'nodes':
dims = element.nodes.dimensions()[2:]
elif self.inspection_policy == 'edges':
- dims = element.kdims+element.vdims
+ kdims = [(kd.pprint_label, '@{%s}' % ref)
+ for kd, ref in zip(element.kdims, ['start', 'end'])]
+ dims = kdims+element.vdims
else:
dims = []
return dims, {}
diff --git a/tests/testbokehgraphs.py b/tests/testbokehgraphs.py
index 569058ca45..b0034e5b1b 100644
--- a/tests/testbokehgraphs.py
+++ b/tests/testbokehgraphs.py
@@ -84,6 +84,15 @@ def test_graph_inspection_policy_edges(self):
self.assertEqual(hover.tooltips, [('start', '@{start}'), ('end', '@{end}')])
self.assertIn(renderer, hover.renderers)
+ def test_graph_inspection_policy_edges_non_default_names(self):
+ graph = self.graph.redim(start='source', end='target')
+ plot = bokeh_renderer.get_plot(graph.opts(plot=dict(inspection_policy='edges')))
+ renderer = plot.handles['glyph_renderer']
+ hover = plot.handles['hover']
+ self.assertIsInstance(renderer.inspection_policy, EdgesAndLinkedNodes)
+ self.assertEqual(hover.tooltips, [('source', '@{start}'), ('target', '@{end}')])
+ self.assertIn(renderer, hover.renderers)
+
def test_graph_inspection_policy_none(self):
plot = bokeh_renderer.get_plot(self.graph.opts(plot=dict(inspection_policy=None)))
renderer = plot.handles['glyph_renderer']