如何根据text_input小部件中的用户输入更改散景图?

时间:2019-05-04 08:55:10

标签: python graph widget bokeh

我的代码中有2个函数

def drawNetwork(plantname, data):
def drawBokehGraph(networkxgraph):

第一个基于csv文件中的数据和给定的工厂名称制作NetworkX图。数据是熊猫数据框。当您从上层函数传递networkxgraph时,第二个将bokeh中的图形绘制到html文件中。在这个散景图上方,我得到了text_input小部件,用户可以在其中编写他想在下面的图上显示的植物。我的困难在于使用此文本输入小部件。我在互联网上找不到太多有关它的信息。我如何根据此文本输入小部件上键入的内容切换此散景图(假设该工厂存在于csv文件中)。我很难掌握回调和customJS。 看起来像这样: Picture of bokeh graph

以下是散景图的一些代码:

def drawBokehGraph(networkxgraph):

    plot = figure(title="Plants", x_range=(-1.1,1.1), y_range=(-1.1,1.1),
              tools="",toolbar_location=None)

    node_hover_tool = HoverTool(tooltips=[("Plant name:", "@index")])
    plot.add_tools(node_hover_tool, TapTool(), BoxSelectTool())

    graph_renderer = from_networkx(networkxgraph, nx.circular_layout, scale=1, center=(0,0))

    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])

    graph_renderer.edge_renderer.glyph = MultiLine(line_color="#CCCCCC", line_alpha=0.8, 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 = NodesAndLinkedEdges()


    plot.renderers.append(graph_renderer)

    output_file("networkx_graph.html")

0 个答案:

没有答案