Python框架之Dash
2025.02.16
jinance
学习
 热度
℃
DASH简介:
Dash 是一个用于构建数据可视化和交互式网络应用的 Python 框架。它基于 Flask、Plotly 和 React,旨在简化数据分析和展示,特别适用于需要动态更新内容的交互式应用。常用于创建实时数据仪表板、报告和监控系统等。
Dash 的主要功能:
数据可视化:支持使用 Plotly 创建丰富的交互式图表(如折线图、散点图、柱状图、饼图等)。
交互性:支持用户输入交互,例如通过下拉框、按钮、滑动条等元素,更新页面上的图表和数据。
布局管理:使用 Dash 的组件可以轻松创建复杂的布局,如网格、卡片、面板等。
多种数据源支持:可以从本地文件(如 CSV、Excel)或远程数据库(如 SQL、API)中加载数据。
无服务器代码:Dash 应用可以完全用 Python 编写,用户不需要编写前端 HTML、CSS 或 JavaScript。
Dash 的基本用法:
安装 Dash:
创建一个简单的 Dash 应用:
1 2 3 4 5 6 7 8 9 10 11
| import dash from dash import dcc, html import plotly.express as px
app = dash.Dash(__name__)
fig = px.scatter(x=[1, 2, 3], y=[3, 1, 2])
app.layout = html.Div([ html.H1("Dash 示例"), dcc.Graph(figure=fig) ])
if __name__ == "__main__": app.run_server(debug=True)
|
使用回调函数实现交互: Dash 使用回调函数来实现交互逻辑。通过设置输入、输出和状态组件,可以在用户交互时更新应用内容。
例如,使用下拉菜单控制图表数据:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| import dash from dash import dcc, html from dash.dependencies import Input, Output import plotly.express as px
app = dash.Dash(__name__)
app.layout = html.Div([ html.H1("Dash 示例 - 下拉菜单交互"), dcc.Dropdown( id="species-dropdown", options=[ {'label': species, 'value': species} for species in df['species'].unique() ], value='setosa' ), dcc.Graph(id="species-graph") ])
@app.callback( Output("species-graph", "figure"), [Input("species-dropdown", "value")] ) def update_graph(selected_species): filtered_df = df[df['species'] == selected_species] fig = px.scatter(filtered_df, x='sepal_width', y='sepal_length', color='species') return fig
if __name__ == "__main__": app.run_server(debug=True)
|
总结
Dash 通过将数据可视化、交互和布局设计统一到一个框架中,为开发者提供了一种非常高效的方式来构建交互式的 Web 应用。