【发布时间】:2021-05-03 17:29:48
【问题描述】:
我正在尝试在 Python dash 中绘制 Networkx 图形以动态更改它。生成networkx图形的代码如下:
def networkGraph(EGDE_VAR):
edges = [[EGDE_VAR,'B'],['B','C'],['B','D']]
G = nx.Graph()
G.add_edges_from(edges)
pos = nx.spring_layout(G)
plt.figure()
fig = nx.draw(G,pos,edge_color='black',width=1,linewidths=1,\
node_size=500,node_color='pink',alpha=0.9,\
labels={node:node for node in G.nodes()})
return(fig)
EGDE_VAR = 'K'
networkGraph(EGDE_VAR)
如果我尝试运行上述函数,它工作正常,所以我得到:
现在我想创建一个 Python 破折号,通过将其设置到输入框中来动态更改 EDGE_VAR。所以我尝试了:
#-*- coding: utf-8 -*-
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
# import the css template, and pass the css template into dash
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.title = "Dash Networkx"
EGDE_VAR = 'R'
# Input box para procurar o sinistro
app.layout = html.Div([
html.I("Write your EDGE_VAR"),
html.Br(),
dcc.Input(id="EGDE_VAR", type="text", placeholder=""),
dcc.Graph(id='my-graph'),
]
)
@app.callback(
Output("my-graph", "figure"),
[Input("EGDE_VAR", "value")],
)
def update_output(EGDE_VAR):
return networkGraph(EGDE_VAR)
if __name__ == '__main__':
app.run_server(debug=True, use_reloader=False)
但它不起作用。有什么想法吗?
【问题讨论】:
标签: python plotly networkx plotly-dash