Sea*_*uji 7 python jinja2 flask plotly plotly-dash
我正在使用 Python 库 Dash 并且文档声称它不支持使用仪表板 html 代码编写原始 html 的能力。是否存在已知的变通解决此(有点像传递dcc.Graph到render_template()与瓶?)。
我想迁移到 Jinja 模板文件的代码片段是:
app.layout = html.Div(className='ui container', children=[
html.H1('Locations', className=''),
html.Div(id='text-content'),
dcc.Graph(id='map', figure={
'data': [{
'lat': df['LAT'],
'lon': df['LONG'],
'marker': {
'color': df['YEAR'],
'size': 8,
'opacity': 0.6
},
'customdata': df['NO'],
'type': 'scattermapbox'
}],
},
'hovermode': 'closest',
'margin': {'l': 0, 'r': 0, 'b': 0, 't': 0}
}
})
])
Run Code Online (Sandbox Code Playgroud)
我以前来过这里,自己问过这个问题,我继续在这里回答:Plotly.offlineplotoutput_type='div'notworking inside HTML - How to embed Plotly to HTML
简而言之,要获取通过 Flask 视图呈现的图表,您可以执行以下操作(取自上面的链接)
pyo.plot()无花果,output_type='div'并且include_plotlyjs=FalseMarkup()(从烧瓶导入)Markup(variable)像render_template表格一样通过{{ jinja template }}更实际的演示:
def my_bar_chart():
*snip irrelevant*
my_bar_chart = pyo.plot(fig, output_type='div', include_plotlyjs=False)
return Markup(my_bar_chart)
Run Code Online (Sandbox Code Playgroud)
现在将您的函数导入到您的 app.py / 无论您的视图在哪里,然后将其传递给渲染模板,就像任何表单一样。
这是一个例子:
def my_page():
my_bar_chart_var = my_bar_chart()
return render_template('my_page.html',
bar_chart_1=my_bar_chart_var)
Run Code Online (Sandbox Code Playgroud)
bar_chart_1然后,在该页面的 html 上,只需在 jinja 模板中传递,如下所示:
{{ bar_chart_1 }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
976 次 |
| 最近记录: |