pyecharts 實時更新儀表盤
前言
在前段時間,小編推出了一篇 pyecharts 可視化儀表盤的制作教程:
但存在幾個問題,不能實時更新數(shù)據(jù),制作的是靜態(tài)的儀表盤,每次生成儀表盤都要調(diào)整代碼,不能一運行就直接生成可視化儀表盤。
針對以上問題,這次小編帶大家制作實時更新的可視化儀表盤。
可視化儀表盤一般以 web 形式展現(xiàn)是比較好的,源數(shù)據(jù)存儲在類似 MySQL 的數(shù)據(jù)庫中的,但為了簡化問題,怕讀者安裝 MySQL 就耗費大量時間,及不懂 web,所以數(shù)據(jù)源采用 csv,沒有使用 web。
開門見山?
實時更新的可視化儀表盤
數(shù)據(jù)生成
我們假設(shè)目標背景是某西餐廳想通過可視化儀表盤實時監(jiān)控餐廳的狀況,便于做出相應(yīng)的人力物力等資源配置。
創(chuàng)建一個 data 文件夾專門用來保存數(shù)據(jù),需要寫一個實時更新插入新數(shù)據(jù)的腳本,用來達到數(shù)據(jù)實時更新的效果。
insert.py 為小編創(chuàng)建的腳本,此腳本先創(chuàng)建 3 張表:
food_sale.csv 菜品銷量表,字段:菜品名,單價,銷量(銷量初始值為 0);
people.csv 人數(shù)狀況表,字段:就餐人數(shù),排隊人數(shù),座位數(shù);
comment.csv 評論表,字段:評分,評論內(nèi)容(評論內(nèi)容每次從 comment.txt 中隨機抽取內(nèi)容作為評論,comment.txt 為小編隨便復(fù)制的評論)
創(chuàng)建三張表并插入初始數(shù)據(jù):
創(chuàng)建好以后,就開始插入數(shù)據(jù),數(shù)據(jù)是一直插入的,小編設(shè)置的是間隔 1.5 秒插入一次,這里就用死循環(huán)就可以了,這樣腳本就一直在運行插入新的數(shù)據(jù)。
先來插入菜品銷量表的銷量,銷量初始為 0,numpy 隨機生成和菜品數(shù)量一樣長范圍在 0-3 之間的數(shù)組,上一次的銷量加上生成的數(shù)組成為新的銷量,更新數(shù)據(jù):
再來插入人數(shù)狀況表,總座位數(shù)設(shè)置為 50,就餐人數(shù)在 0-100 之間隨機生成,大于 50,那就餐人數(shù)就為? 50,排隊人數(shù)就隨機生成 10-30 之間的整數(shù),如小于 50,排隊人數(shù)就為 0,插入數(shù)據(jù):
最后評論表,評分 1-5 分隨機生成,評論從小編準備好的 txt 里面隨機抽取,插入數(shù)據(jù):
好,運行此腳本就會在 data 文件夾生成數(shù)據(jù),且腳本一直運行,數(shù)據(jù)一直更新。
?可視化儀表盤?
先來看看可視化儀表盤由哪些圖構(gòu)成,實現(xiàn)的代碼獲取源代碼查看,這些圖表都設(shè)置了 id。
菜品銷量排行條形圖:
銷售額完成情況儀表盤:
就餐人數(shù)占總座位數(shù)的比重的水球圖:
評分占比玫瑰圖:
評論詞云:
人數(shù)座位分布:
這些生成代碼全都封裝成函數(shù),創(chuàng)建 page 對象調(diào)用它們,生成的可視化全部在 page.html 中,布局排版,保存 json文件,不明白的看文章開頭鏈接的文章。
打開 json 文件可以看到有 cid 字段,這就是每張圖表的 id,我們在布局好后,選中一張圖表,右鍵【檢查】,可以查看它的 id,此 id 在 json 中對應(yīng)的地方找到,重新設(shè)置 id,假如此時右鍵后看到的 id 為 123,那在json 中找到 uid 為 123 的值,修改 uid 為1,在代碼中找到此圖的代碼,設(shè)置 chart_id 為 1,依次把所有圖表的都修改:
id 全部修改好后,調(diào)用就可以生成儀表盤了,page.html 為生成的初始可視化圖表,chart_config.json 布局文件,my_charts.html 最終可視化儀表盤。
最后需要實現(xiàn)實時刷新的功能,在最終可視化儀表盤中的 html 文件中添加一行刷新功能 html 代碼即可,最后死循環(huán)讀取,生成,刷新:
最后運行先運行 insert.py,再運行 visual.py,打開 my_charts.html 就可以看到每隔 3 秒自動刷新一次,就如“開門見山”所示。
?源碼獲取
關(guān)注微信公眾號 “木下學(xué)Python”,回復(fù) “pyecharts實時更新” 即可獲取
END
讀者交流群已建立,找到我備注 “交流”,即可獲得加入我們~
聽說點 “在看” 的都變得更好看吶~
關(guān)注關(guān)注小編唄~小編給你分享爬蟲,數(shù)據(jù)分析,可視化的內(nèi)容噢~
掃一掃下方二維碼即可關(guān)注我噢~
-END-

















