使用Bokeh在网络图中拖放节点

问题描述 投票:0回答:1

我从Bokeh开始。我绘制了一个网络图。有用。我想拖放节点以将它们移动到绘图中,以便更好地清晰节点关系:

到目前为止,我有以下内容(只写了重要的部分):

df = pd.read_csv('data.csv', sep=" ", header=None)
G = nx.from_pandas_edgelist(d, 0, 1) 
plot = Plot(background_fill_color="lightgrey",
        plot_width=800, plot_height=600,
        x_range=Range1d(-0.5, 0.5), y_range=Range1d(-0.5, 0.5))
graph_renderer = from_networkx(
    G, nx.spring_layout, scale=1, center=(0, 0))
# here is the issue:
plot.add_tools(PointDrawTool(
    renderers=[graph_renderer], empty_value='black'))
plot.renderers.append(graph_renderer)
...

PointDrawTool是一个可以拖放的工具。以下文档说它期望一个渲染器(我假设:graph_renderer)但我得到错误AttributeError: 'GraphRenderer' object has no attribute 'glyph'

一些指导意见。

python-3.x bokeh
1个回答
0
投票

更换时,Bokeh v1.1.0中的一切正常

plot.add_tools(PointDrawTool(renderers = [graph_renderer], empty_value='black'))

有:

plot.add_tools(PointDrawTool(renderers = [graph_renderer.node_renderer], empty_value = 'black'))
© www.soinside.com 2019 - 2024. All rights reserved.