首先查看對應的效果圖,切換圖表可展示為對應的柱狀圖,圖表中的數據來源是Django的Queryset查詢結果
整個實現流程如下:
1、進入 echarts官網下載,並導入echarts.js
2、在 echarts官網尋找想要的圖型示例,點擊圖形查看示例編碼,復制對應的option
3、編寫js函數,根據自己的需求將對應的數據進行參數化。本文例子中將對應展示位置的id,對應圖表展示的標題及整個數據字典做了參數化
4、編寫對應的函數調用方法。本文中做了餅圖和柱狀圖的切換,因此在頁面調用函數時先對柱狀圖做了隱藏,使用ajax調用Django請求獲取數據,獲取的結果函數在第五條中,返回了對應的字典,如本文中返回的項目對應套件數量及項目對應用例數量的列表字典,然后進行對應的循環生成新的字典放入列表中,列表數據符合option對應data的格式,最后調用生成圖表的函數。不善於前端語言的小伙伴可直接在后台生成符合option對應data的格式數據進行返回。
5、對應請求進行數據獲取,本文中套件關聯項目,使用annotate及Count進行數量統計,統計出字段為項目名稱及對應的套件數量,最后使用DjangoJSONEncoder將Queryset對象轉為字典格式,使用json.dumps轉為標准json格式返回給ajax
最后配置對應的url,調用后即可發現已生成圖表。注意圖表切換時,應初始化調用resize()方法,否則圖形顯示格式會被壓縮。