此命令将在您的虚拟环境中安装Dash和pandas。您将使用这些软件包的特定版本,以确保与本教程中使用的环境具有相同的环境。除了Dash之外,pandas还可以帮助您读取和处理将在应用程序中使用的数据。
最后,您需要一些数据以将其输入到仪表板中。将数据另存为avocado.csv
在项目的根目录中。到目前为止,您应该已经有了一个虚拟环境,其中包含必需的库以及项目根文件夹中的数据。您项目的结构应如下所示:
avocado_analytics/
|
├── venv/
|
└── avocado.csv
接下来,您将构建第一个Dash应用程序。
如何构建Dash应用程序
分两个步骤考虑构建Dash应用程序的过程:
- 根据应用的布局来定义应用的外观。
- 使用回调函数来确定应用程序的哪些部分是交互式的,以及它们如何响应。
在本节中,您将了解布局,在下一节中,将学习如何使仪表板具有交互性。首先,设置初始化应用程序所需的所有内容,然后定义应用程序的布局。
初始化您的Dash应用程序
在项目的根目录中创建一个名为app.py
的空文件,然后在本节中查看app.py
的代码。
这是app.py
的前几行:
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
data = pd.read_csv("avocado.csv")
data = data.query("type == 'conventional' and region == 'Albany'")
data["Date"] = pd.to_datetime(data["Date"], format="%Y-%m-%d")
data.sort_values("Date", inplace=True)
app = dash.Dash(__name__)
在第1至4行中,导入所需的库:dash
,dash_core_components
,dash_html_components
和pandas
。每个库都为您的应用程序提供了一个构建模块:
dash
可帮助您初始化应用程序。dash_core_components
允许您创建交互式组件,例如图形,下拉列表或日期范围。dash_html_components
使您可以访问HTML标记。pandas
可以帮助您阅读和整理数据。
在第6到9行中,您将读取数据并对其进行预处理以在仪表板中使用。之所以要过滤掉某些数据,是因为当前版本的仪表板不是交互式的,否则绘制的值就没有意义了。
在第11行上,创建Dash类的实例。如果您以前使用过Flask,则初始化Dash类可能看起来很熟悉。在Flask中,通常使用Flask(__ name__)
初始化WSGI应用程序。同样,对于Dash应用程序