<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          pyecharts 實時更新儀表盤

          共 1672字,需瀏覽 4分鐘

           ·

          2021-03-11 04:50

          Python實戰(zhàn)社群

          Java實戰(zhàn)社群

          長按識別下方二維碼,按需求添加

          掃碼關(guān)注添加客服

          進Python社群▲

          掃碼關(guān)注添加客服

          進Java社群


          作者丨木下瞳
          來源丨木下學(xué)Python



          開門見山 

           


          實時更新的可視化儀表盤




          數(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)注填加客服 
          長按識別下方二維碼進群

          近期精彩內(nèi)容推薦:  

           華為正式宣布養(yǎng)豬,網(wǎng)友:支持華為自救!

           入職騰訊第九年,我辭職了!

           Windows藍屏為什么是藍底白字?

           955 互聯(lián)網(wǎng)公司白名單來了!




          在看點這里好文分享給更多人↓↓

          瀏覽 32
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中国的19岁的毛片 | 青网草久草视频 | 狠狠躁日日躁夜夜躁av | 黄色三级A片 | 影音先锋色成人 |