提问人:Danny 提问时间:12/8/2018 最后编辑:bigreddotDanny 更新时间:12/9/2018 访问量:751
无法在散景网络图中填充悬停工具提示值
Cannot populate Hover Tooltip values in bokeh network plot
问:
我有一个网络,节点如下:
[('user_0', {'pk': 2, 'tname': 'user_0'}), ('user_1', {'pk': 3, 'tname': 'user_1'}), ('user_2', {'pk': 4, 'tname': 'user_2'}), ('user_3', {'pk': 5, 't': 'user_3'}), ('user_4', {'pk': 6, 't': 'user_4'})]
我的绘图代码本质上是文档中两个示例的组合。具体如下:
# Create plot
plot = Plot(plot_width=600,
plot_height=600,
x_range=Range1d(-1.1,1.1),
y_range=Range1d(-1.1,1.1))
# Set title
plot.title.text = "Graph Interaction Demonstration"
# Create and set up graph renderer ------------------------------------
# Use renderer to plot from network x, with given layout
graph = self.as_plottable()
nodes = list(graph .nodes)
n_nodes = len(list(graph .nodes))
graph_renderer = from_networkx(graph ,
nx.shell_layout,
nlist=[nodes[0:int(n_nodes/3)],
nodes[int(n_nodes/3):2*int(n_nodes/3)],
nodes[2*int(n_nodes/3):]],
scale=1,
center=(0,0))
# Add interaction tools
node_hover_tool = HoverTool(tooltips=[
('Name','@tname'),
('ID','@pk')
])
plot.add_tools(node_hover_tool,
BoxZoomTool(),
ResetTool())
graph_renderer.node_renderer.glyph = Circle(size=8, fill_color=Spectral4[0])
graph_renderer.node_renderer.selection_glyph = Circle(size=8, fill_color=Spectral4[2])
graph_renderer.node_renderer.hover_glyph = Circle(size=12, fill_color=Spectral4[1])
graph_renderer.edge_renderer.glyph = MultiLine(line_color="#BFBFBF", line_alpha=0.8, line_width=3)
graph_renderer.edge_renderer.selection_glyph = MultiLine(line_color=Spectral4[2], line_width=3)
graph_renderer.edge_renderer.hover_glyph = MultiLine(line_color=Spectral4[1], line_width=3)
# Provide logic for selection of graph components
graph_renderer.selection_policy = NodesAndLinkedEdges()
# Provide logic for inspection of graph components
graph_renderer.inspection_policy = EdgesAndLinkedNodes()
# Add network graph renderer to plot
plot.renderers.append(graph_renderer)
# Output graph to a file
output_file(filename)
# Plot graph
show(plot)
我尝试过调整事物的顺序,更改节点属性的名称以及各种其他调整,但我的悬停提示数据始终显示为“名称:???”、“ID:???”。我读到,当您的数据源中实际上没有正确的列时,可能会发生这种情况,但我打印了字典:
graph_renderer.node_renderer.data_source.data
它有“tname”和“pk”的条目。我被难住了。有什么想法吗?
答:
3赞
Danny
12/9/2018
#1
解决了它,问题是将我的检查策略设置为.这导致我的工具提示在边缘而不是节点中查找信息。EdgesAndLinkedNodes()
评论