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