Dash 是一个由 Plotly 开发并维护的开源 Python 框架,它允许用户使用 Python 代码快速构建交互式仪表盘。无论是数据可视化、数据分析还是数据驱动的应用,Dash 都是一个强大的工具。下面,我们将通过一系列实战案例来教你如何快速上手 Dash,并搭建自己的交互式仪表盘。
环境准备
在开始之前,请确保你已经安装了以下依赖:
- Python 3.x
- Pandas
- NumPy
- Plotly
- Dash
你可以使用以下命令来安装这些依赖:
pip install pandas numpy plotly dash
实战案例:搭建一个简单的仪表盘
在这个案例中,我们将创建一个简单的仪表盘,用于展示一个数据集的基本统计信息。
步骤 1:导入必要的库
import dash
from dash import dcc
from dash import html
import pandas as pd
import plotly.express as px
步骤 2:加载数据集
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_data.csv')
步骤 3:创建 Dash 应用
app = dash.Dash(__name__)
步骤 4:定义仪表盘的布局
app.layout = html.Div([
html.H1('数据集统计信息'),
dcc.Graph(
id='scatter',
figure=px.scatter(df, x='year', y='lifeExp', size='pop', color='continent',
hover_data=['country'])
),
dcc.Dropdown(
id='year-dropdown',
options=[{'label': str(year), 'value': year} for year in df['year'].unique()],
value=df['year'].min()
)
])
步骤 5:运行 Dash 应用
if __name__ == '__main__':
app.run_server(debug=True)
这段代码创建了一个简单的仪表盘,其中包括一个散点图和一个下拉菜单。用户可以通过下拉菜单选择不同的年份,从而查看不同年份的数据。
实战案例:添加交互式图表
在下面的案例中,我们将添加一个交互式图表,允许用户在地图上选择不同的国家。
步骤 1:导入必要的库
import dash_crs
import geopandas as gpd
步骤 2:加载地图数据
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
world = world[(world.name != 'Antarctica') & (world.name != 'France') & (world.name != 'United Kingdom')]
步骤 3:创建交互式地图
app.layout = html.Div([
html.H1('世界人口分布'),
dcc.Graph(
id='world-map',
figure=px.choropleth_mapbox(
world,
geojson=world.geometry,
locations=world.name,
color=world['pop'],
color_continuous_scale="Viridis",
range_color=(0, 100000000),
mapbox_style="carto-positron",
zoom=1,
center={"lat": 0, "lon": 0},
opacity=0.5
)
)
])
这段代码创建了一个交互式地图,用户可以在地图上选择不同的国家,查看该国家的人口分布。
总结
通过以上实战案例,你已经掌握了 Dash 的基本用法,并能够搭建简单的交互式仪表盘。在实际应用中,你可以根据自己的需求,添加更多组件和交互功能,使仪表盘更加丰富和实用。
