【发布时间】:2019-05-31 04:05:12
【问题描述】:
我正在尝试使用 Networkx 制作图表并使用 Bokeh 渲染图表。除了我咨询过Data tooltips in Bokeh don't show data, showing '???' instead、Bokeh hover tooltip not displaying all data - Ipython notebook 并阅读有关 ColumnDataSource 的文档的悬停工具提示之外,一切似乎都在工作,但我仍然无法弄清楚为什么工具提示不会从其中一列中呈现标签我的数据框。
下面是一个过度简化的 Excel 文件中的数据,我一直在玩。
group subtopic code
fruit grapes 110A
fruit apple 110B
meat pork 220A
meat chicken 220B
meat duck 220C
vegetable lettuce 300A
vegetable tomato 310A
vegetable asparagus 320A
我尝试运行以下代码:
df = pd.read_excel(file1, sheetname = 'Sheet3')
reshape = []
for i, j, in df.iterrows():
for _, k in df.iterrows():
if (j['code'] == k['code']):
pass
elif j['group'] == 'nan':
reshape.append({'code1':j['code'],
'code2': j['code'],
'group': 'None'})
elif (j['group'] == k['group']):
reshape.append({'code1': j['code'],
'code2': k['code'],
'group': j['group']})
else:
pass
df1 = pd.DataFrame(reshape)
g = nx.from_pandas_edgelist(df1, source='code1', target='code2', edge_attr = True)
source = ColumnDataSource(df)
TOOLTIPS = [("type", "@group"),("code", "@code1")]
plot = Plot(x_range = Range1d(-1.1,1.1), y_range = Range1d(-1.1,1.1))
plot.title.text = 'Bokeh Plot'
plot.add_tools(HoverTool(tooltips = TOOLTIPS), TapTool(), BoxSelectTool(),
WheelZoomTool())
graph_renderer = from_networkx(g, nx.spring_layout, scale = 1, center = (0,0))
# manipulating nodes
graph_renderer.node_renderer.glyph = Circle(size = 15, fill_color = Spectral4[0])
graph_renderer.node_renderer.selection_glyph = Circle(size = 15, fill_color =
Spectral4[2])
graph_renderer.node_renderer.hover_glyph = Circle(size = 15, fill_color =
Spectral4[1])
# manipulating edges
graph_renderer.edge_renderer.glyph = MultiLine(line_color = '#CCCCCC', line_alpha =
.5, line_width = 5)
graph_renderer.edge_renderer.selection_glyph = MultiLine(line_color = Spectral4[2],
line_width = 5)
graph_renderer.edge_renderer.hover_glyph = MultiLine(line_color = Spectral4[1],
line_width = 5)
graph_renderer.selection_policy = NodesAndLinkedEdges()
graph_renderer.inspection_policy = EdgesAndLinkedNodes()
plot.renderers.append(graph_renderer)
output_notebook()
show(plot)
运行脚本后,我得到以下信息:
【问题讨论】:
-
散景是什么版本?
-
我正在运行 1.0.3
标签: pandas graph networkx bokeh