1 项目说明
本项目是基于 Dash 开发的一个演示项目,对小米集团 2018 年的财报,进行了简单的解读,其界面如下:
共包括 5 部分内容:
- 总览:小米 2018 年整体状况
- 智能手机:智能手机业务分析
- IoT 与生活消费产品:IoT 与生活消费产品业务分析
- 互联网服务:互联网服务业务分析
- 其它:一些补充说明
项目数据主要来源于:
- 香港交易所 HKEX 数据
- 小米集团 2018 年财报
- IDC 调研报告数据
通过此项目,可以快速上手 Dash
和 Plotly
,并获得一个在线的数据报告。不过此次主要是为了熟悉 Dash 框架,分析的质量很一般,这里也不对项目内容进行展示了,想进一步了解可以从 GitLab 获取本项目。
Dash 是一个用于构建数据可视化 web 应用的 Python 框架,基于 Flask、Plotly.py 和 React.js。其使用简单,可以方便快捷地搭建一个数据可视化应用。这里不对其使用做过多介绍,可以参考官方教程。
2 使用项目
可以直接 clone
项目的代码,已使用本项目,具体来说,需要 4 步:
- 首先从 GitLab 克隆本项目:
git clone https://gitlab.com/gaiusyao/idash.git
- 接着构建虚拟环境(非必需),并安装依赖:
# 使用 conda 构建虚拟环境
conda create -n idash python=3.6
# 启动虚拟环境
activate idash
# 安装依赖
pip install -r requirements.txt
- 然后启动应用:
# 进入项目文件夹
cd dash-xiaomi-2018
# 启动应用
python app.py
- 最后在浏览器输入
http://127.0.0.1:8050/dash-xiaomi-2018
以访问应用。
3 项目结构
Dash 项目的基本结构如下:
Dash_App/
|-- assets/
|-- app.css
|-- app.py
|-- .gitignore
|-- Procfile
|-- requirements.txt
|-- runtime.txt
具体来说,各部分的功能如下:
-
Dash_App/
项目文件夹-
assets
外部文件,包括 CSS、Js、img 文件-
app.css
CSS 文件
-
-
-
app.py
应用程序的启动文件 -
.gitignore
确定在git中忽略哪些文件和文件夹 -
Procfile
声明应用程序容器运行的命令 -
requirements.txt
描述应用程序的 python 依赖项 -
runtime.txt
指定运行的 python 版本
而具体到本项目,由于以后会在同一个虚拟环境上有多个 Dash 项目,因此笔者将本项目文件放在 iDash
文件夹下的 dash-xiaomi-2018
,同时将 requirements.txt
直接放在 iDash
文件夹下。另外,在项目文件夹(dash-xiaomi-2018
)下,设置了 data
和 components
文件夹,分别用于存放数据文件和应用组件的 python 文件。
4 One More Thing
在此次实战中,发现 plotly.py
的使用较为繁琐,需要编写很多代码以进行图形设置。为了解决这个问题,需要对 plotly.py
进行简洁一致的高级封装,类似 seaborn
之于 matplotlib
。笔者经过一番查找,发现 plotly express 提供了现成的解决方案,在下个 Dash 项目中,笔者将会对其进行试用。