數(shù)讀小米2018財(cái)報(bào)——使用Dash構(gòu)建數(shù)據(jù)報(bào)告

1 項(xiàng)目說明

??本項(xiàng)目是基于 Dash 開發(fā)的一個(gè)演示項(xiàng)目,對(duì)小米集團(tuán) 2018 年的財(cái)報(bào),進(jìn)行了簡(jiǎn)單的解讀,其界面如下:

??共包括 5 部分內(nèi)容:

  • 總覽:小米 2018 年整體狀況
  • 智能手機(jī):智能手機(jī)業(yè)務(wù)分析
  • IoT 與生活消費(fèi)產(chǎn)品:IoT 與生活消費(fèi)產(chǎn)品業(yè)務(wù)分析
  • 互聯(lián)網(wǎng)服務(wù):互聯(lián)網(wǎng)服務(wù)業(yè)務(wù)分析
  • 其它:一些補(bǔ)充說明

??項(xiàng)目數(shù)據(jù)主要來源于:

??通過此項(xiàng)目,可以快速上手 DashPlotly,并獲得一個(gè)在線的數(shù)據(jù)報(bào)告。不過此次主要是為了熟悉 Dash 框架,分析的質(zhì)量很一般,這里也不對(duì)項(xiàng)目?jī)?nèi)容進(jìn)行展示了,想進(jìn)一步了解可以從 GitLab 獲取本項(xiàng)目。

??Dash 是一個(gè)用于構(gòu)建數(shù)據(jù)可視化 web 應(yīng)用的 Python 框架,基于 Flask、Plotly.py 和 React.js。其使用簡(jiǎn)單,可以方便快捷地搭建一個(gè)數(shù)據(jù)可視化應(yīng)用。這里不對(duì)其使用做過多介紹,可以參考官方教程。

2 使用項(xiàng)目

??可以直接 clone 項(xiàng)目的代碼,已使用本項(xiàng)目,具體來說,需要 4 步:

  1. 首先從 GitLab 克隆本項(xiàng)目:
git clone https://gitlab.com/gaiusyao/idash.git
  1. 接著構(gòu)建虛擬環(huán)境(非必需),并安裝依賴:
# 使用 conda 構(gòu)建虛擬環(huán)境
conda create -n idash python=3.6 

# 啟動(dòng)虛擬環(huán)境
activate idash

# 安裝依賴
pip install -r requirements.txt
  1. 然后啟動(dòng)應(yīng)用:
# 進(jìn)入項(xiàng)目文件夾
cd dash-xiaomi-2018

# 啟動(dòng)應(yīng)用
python app.py
  1. 最后在瀏覽器輸入 http://127.0.0.1:8050/dash-xiaomi-2018 以訪問應(yīng)用。

3 項(xiàng)目結(jié)構(gòu)

??Dash 項(xiàng)目的基本結(jié)構(gòu)如下:

Dash_App/
|-- assets/
   |-- app.css
|-- app.py
|-- .gitignore
|-- Procfile
|-- requirements.txt
|-- runtime.txt

??具體來說,各部分的功能如下:

  • Dash_App/ 項(xiàng)目文件夾
    • assets 外部文件,包括 CSS、Js、img 文件
      • app.css CSS 文件
  • app.py 應(yīng)用程序的啟動(dòng)文件
  • .gitignore 確定在git中忽略哪些文件和文件夾
  • Procfile 聲明應(yīng)用程序容器運(yùn)行的命令
  • requirements.txt 描述應(yīng)用程序的 python 依賴項(xiàng)
  • runtime.txt 指定運(yùn)行的 python 版本

??而具體到本項(xiàng)目,由于以后會(huì)在同一個(gè)虛擬環(huán)境上有多個(gè) Dash 項(xiàng)目,因此筆者將本項(xiàng)目文件放在 iDash 文件夾下的 dash-xiaomi-2018,同時(shí)將 requirements.txt 直接放在 iDash 文件夾下。另外,在項(xiàng)目文件夾(dash-xiaomi-2018)下,設(shè)置了 datacomponents 文件夾,分別用于存放數(shù)據(jù)文件和應(yīng)用組件的 python 文件。

4 One More Thing

??在此次實(shí)戰(zhàn)中,發(fā)現(xiàn) plotly.py 的使用較為繁瑣,需要編寫很多代碼以進(jìn)行圖形設(shè)置。為了解決這個(gè)問題,需要對(duì) plotly.py 進(jìn)行簡(jiǎn)潔一致的高級(jí)封裝,類似 seaborn 之于 matplotlib。筆者經(jīng)過一番查找,發(fā)現(xiàn) plotly express 提供了現(xiàn)成的解決方案,在下個(gè) Dash 項(xiàng)目中,筆者將會(huì)對(duì)其進(jìn)行試用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在行動(dòng)中拿到結(jié)果,結(jié)果中讓我們?cè)絹碓胶谩?今天公司來了很多顧客,很熱鬧,一起喝茶聊天暢談,很不錯(cuò)。我也給代理商做了...
    鐘姣閱讀 222評(píng)論 0 4
  • 希望在我四十歲的時(shí)候能夠再買一套100+平米房,這樣的話,我就有更大的空間了,可以讓爸媽過來住了。所以加油!
    云中歌_2439閱讀 233評(píng)論 0 0
  • 沒有不懂事的孩子,只有不會(huì)教育的父母;沒有不聽話的孩子,只有不會(huì)說話的父母。只要父母用心,就能找到孩子樂于接受的好...
    李興華女閱讀 2,206評(píng)論 3 8

友情鏈接更多精彩內(nèi)容