Перетащите узлы в сетевой график с Bokeh - PullRequest
0 голосов
/ 21 апреля 2019

Я начинаю с Боке. Я строю график сети. Оно работает. Я хочу перетаскивать узлы, чтобы перемещать их по графику для большей ясности в отношении узлов:

Пока у меня есть следующее (написаны только важные строки):

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'

Некоторое руководство приветствуется.

1 Ответ

0 голосов
/ 22 апреля 2019

Все отлично работает в 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'))
...