Как изменить график боке на основе пользовательского ввода в виджете text_input? - PullRequest
0 голосов
/ 04 мая 2019

У меня есть 2 функции в моем коде, называемые

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

Первая создает график NetworkX на основе данных в CSV-файле и имени завода.Данные - это панды.Второй рисует график в боке в HTML-файл, когда вы передаете networkxgraph из верхней функции.Над этим графиком боке у меня есть виджет text_input, в котором пользователь может написать, какое растение он хочет показать на графике ниже.Мои трудности с этим виджетом для ввода текста.Я не мог найти много информации об этом в Интернете.Как я могу переключить этот график боке на основе того, что напечатано на этом виджете ввода текста (учитывая, что это растение существует в CSV-файле).Мне трудно понять обратные вызовы и обычай JS.Вот как это выглядит: 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")
...