Plotly Dash 是一个用于创建交互式 web 应用程序的 Python 框架,它基于 Flask、Plotly.js 和 React.js 构建。使用 Dash,你可以轻松地创建具有丰富交互性的数据可视化应用。
在 Dash 中,你可以使用 dcc.Dropdown
组件创建下拉菜单,然后通过回调函数(Callback)根据用户的选择更新图形。回调函数是 Dash 应用的核心,它们允许你定义用户界面元素之间的交互逻辑。
Dash 应用适用于需要实时数据可视化和用户交互的场景,如数据分析报告、监控仪表板、金融交易平台等。
以下是一个简单的 Dash 应用示例,展示了如何使用下拉菜单更新图形:
import dash
from dash import dcc, html
from dash.dependencies import Input, Output
import plotly.graph_objs as go
app = dash.Dash(__name__)
app.layout = html.Div([
dcc.Dropdown(
id='dropdown',
options=[
{'label': 'Line Chart', 'value': 'line'},
{'label': 'Bar Chart', 'value': 'bar'}
],
value='line'
),
dcc.Graph(id='graph')
])
@app.callback(
Output('graph', 'figure'),
[Input('dropdown', 'value')]
)
def update_graph(selected_chart):
if selected_chart == 'line':
return go.Figure(data=[go.Scatter(x=[1, 2, 3], y=[4, 1, 2])])
elif selected_chart == 'bar':
return go.Figure(data=[go.Bar(x=[1, 2, 3], y=[4, 1, 2])])
if __name__ == '__main__':
app.run_server(debug=True)
update_graph
函数会被触发,根据选择的图表类型更新图形。问题:图形没有更新。
原因:
解决方法:
Input
和 Output
的 ID 是否与布局中的组件 ID 匹配。通过以上步骤,你可以创建一个基于 Dash 的交互式应用,允许用户通过下拉菜单动态更新图形。
领取专属 10元无门槛券
手把手带您无忧上云