前端如何一鍵生成多維度數據可視化分析報表

2020-12-16 酷扯兒

本文轉載自【微信公眾號:趣談前端,ID:beautifulFront】經微信公眾號授權轉載,如需轉載與原文作者聯繫

前言

本文是基於上一篇文章介紹H5編輯器 後臺管理系統實戰的第二篇文章, 也是比較重要的一篇文章, 主要介紹後臺系統中如何基於已有數據表格自動生成多維度可視化報表.

筆者之所以會花3篇文章去介紹這一塊的內容, 是因為目前B端產品很多都有類似的需求, 比如導入導出excel, 在線編輯表格(table),基於表格數據生成可視化圖表, 用戶權限路由和權限菜單設計等. 這裡筆者總結為如下3點核心知識:

如何使用JavaScript實現前端導入和導出excel文件(H5編輯器實戰復盤)前端如何基於table中的數據一鍵生成多維度數據可視化分析報表如何實現會員管理系統下的權限路由和權限菜單希望通過這3篇文章的復盤和實戰, 可以讓大家開發企業應用的時候更加遊刃有餘. 本文主要涉及的技術點如下:

antv/g2 可視化組件庫antd Table可度量緯度以及javascript分類算法正文

通過上面的介紹我們可能還不太了解接下來我們要做什麼, 為了方便大家理解, 我們先看看實現效果:

第一張圖是我們的Table數據源, 右上角有導出Excel和生成分析報告這兩個功能鍵, 導出excel部分我們已經在上篇文章介紹過了, 這裡我們會詳細分析生成分析報告功能. 還有就是可視化圖表我們採用的是antv的g2, 如果對@ant-design/charts比較熟悉, 也可以直接使用charts, 圖表庫主要是為我們提供數據可視化呈現的, 不是本文的重點, 感興趣可以自行學習了解.

可度量緯度的理解

什麼是可度量緯度呢? 這裡簡單給大家舉個例子, 比如我們要分析程式設計師的脫單意向, 我們需要從幾個緯度去統計, 比如性別, 脫單渴望度, 如果我們還需要更詳細的分析用戶, 我們還可以收集用戶的愛好,年齡層這些, 這些特徵(性別,脫單渴望度,愛好)都可以作為單一緯度對用戶進行分析統計, 所以它們都是可分析的緯度. 但是比如用戶填寫的暱稱, ID等信息, 每個人基本都不一樣, 對這樣的緯度進行分析可能會出現「千人千面」的局面, 並不適合作為統計學指標來分析, 所以這樣的欄位就是不可度量緯度. 如下數據:

從上面的分析中可以發現性別, 愛好, 脫單渴望度這3個緯度都是可度量緯度, 所以我們可以對其進行分析. 分析結果如下:

以上數據均是筆者通過

H5-Dooring

編輯器配置的表單頁收集而來, 數據基本真實. 如果你也想填寫該問卷, 可以

點擊閱讀原文填寫

.

由上圖可以看出, 填寫表單的人有90%為男性, 10%為女性, 其中60%的人平時的愛好是 吃, 睡. 40%的人平時喜歡健身, 旅遊(這個還是不錯的~). 然後由第三張圖我們可以發現有50%的人渴望脫單, 有20%的人覺得單身不錯(太難了). 所以基本根據圖表分析我們可以得到一些有用的信息來知道我們後期的脫單行動.

以上是一個真實的例子,當然企業實際應用中分析的內容可往往會更有價值, 通過數據的直觀呈現來知道企業做決策, 這一點是可視化圖表的很重要的一個價值點.

說了概念和實際應用,我們接下來看看如何通過技術的手段去實現這樣的功能.

基於數據一鍵生成多維度數據可視化分析報表解決方案

上面介紹了可度量緯度的概念, 這一章節我們就來實現如何計算可度量緯度. 我們都知道Table中某個欄位具有可度量性, 它要麼是n選1, 要麼是多選, 所以我們基於這個規律, 來提取Table中單選和多選的欄位, 但前提是要可表單收集頁數據結構保持一致, 我們看看用H5-Dooring配置的表單收集頁長啥樣:

我們從表單中可以看出, 性別, 愛好, 脫單渴望度屬於可度量緯度, 我們因該將其欄位數據定義為如下格式:

[{ value: "健身", label: "健身", key: "健身" }]// 或者(一般出現在多選情況)["美食", "健身", "旅遊"]

複製代碼

這樣我們就能根據數據特徵用javascript的算法將其可度量指標提取出來. 代碼如下:

const generateDistData = (key:string, list:List) => {let distDataMap:any = {}, distData = [] list.forEach((item:Item) => { // 當前緯度的類別 let curKey = typeof item[key] === 'object' ? item[key][0].label : item[key]; if(distDataMap[curKey]) { distDataMap[curKey]++; }else { distDataMap[curKey] = 1; } }) // 生成目標數組 for(let k in distDataMap) { distData.push({name: k, value: distDataMap[k]}) } return distData }

複製代碼

以上方法可以將緯度信息提取出來並生成antv/g2可以消費的數據體. 代碼採用對象法來對table數據也就是list進行過濾分類(根據指定的key), 最後將分類數據同一放入目標數組中.

generateDistData方法的第一個參數key, 也就是可度量緯度的欄位名, 我們在Table數據生成完成的同時會生成可度量緯度數組, 用戶每切換一次度量緯度會調用一次generateDistData用來生成對應的可供圖表庫消費的數據. 如下實現:

const handleAnazlyChange = (index:number, v:string) => {const config = { appendPadding: 10, data: generateDistData(v, list), // 默認展示第一個欄位的分析數據 angleField: 'value', colorField: 'name', radius: 0.8, label: { type: 'inner', offset: '-0.5', content: '{name} {percentage}', style: { fill: '#fff', fontSize: 14, textAlign: 'center', }, }, }; setConfig(config)}

複製代碼

最後我們將數據消費給圖表:

<Pie {...config} />

複製代碼

以上就實現了我們上面說的功能, 如果想學習源碼, 可以參考H5-Dooring.

相關焦點

  • BI系統:分析報表自動生成
    分析報表自動生成是BI系統基礎性效果之一。對每天都需要製作大量樣式一致的基礎性報表的用戶來說,使用BI系統來自動生成分析報表能不僅能快速完成既定的基礎性報表製作任務,更能節省大量時間用於深度數據分析挖掘,或做更具針對性的個性化數據分析。這樣一來就能打破企業數據分析流表面,無法為業務、決策提供快而準的數據支持的困境。
  • 財務編制499套Excel可視化財務報表,輸入數據,自動生成
    財務編制499套Excel可視化財務報表,輸入數據,自動生成我們已經為您整理成了電子版文檔如果你覺得這份資料對您有幫助希望獲取完整資料參考學習,可以看文末>目錄財務月度收支分析表財務數據統計表財務報告分析年度財務經營分析報告季度數據分析表季度支出財務報告等
  • 雙11財務報表怎麼做?不用Excel,10分鐘學會動態可視化報表
    我有一個財務朋友,她以前最怕月底,忙成狗還被說成沒有任何貢獻,從CRM、ERP等系統抽取出各類數據,開始加班熬夜整合匯總分析,時間緊,任務多,要是遇到Excel崩潰,數據計算出錯,一切歸零。這麼拼的情況下,財務報表有時候還是趕不上月度經營分析會,好不容易趕出來,有時候還出現數據不準確的問題,月會分析問題的時候用不上。
  • 390個可視化Excel財務報表,數據全自動生成,5分鐘上手
    財務工作終究離不開財務報表。390個可視化Excel財務報表,數據全自動生成,5分鐘就可以上手哦財務分析數據看板分析表內已經設好公式,填入基礎數據,即可生成動態報表。年度財務營收分析報告全年各月的財務營收都包含了,直接生成各項圖表,數據直觀,小白也能看得懂。應收帳款帳齡分析表直接套用,數據可自動計算應收帳款的帳齡,可自動提醒忙碌的會計記得收款。
  • 11款可視化大數據分析工具優缺點對比
    作者|@阿爾法汪來源|人人都是產品經理(微信公眾號woshipm),原標題為「數據分析必備|你不得不知道的11款數據分析工具 」BI(BusinessIntelligence)即商業智能,越來越多的智能軟體供應商推出可視化數據分析工具,應對企業業務人員的大數據分析需求。
  • 數據分析用這樣的可視化報表,秒殺Excel,再也不怕被說low
    同時,公司的內部系統中,諸如OA、ERP、CRM、BI等都積累了大量員工的真實工作數據和個人檔案,如何運用好這部分海量信息以提煉出有價值的內容,就變得很重要了,這就是我今天想說的:報表。報表是什麼?簡單又通俗的講,報表就是數據的呈現,通過報表,企業可以看出經營中所存在的問題,常見的報表如財務報表,人力資源報表,銷售報表等。作為數據分析項目,報表其實包括了原始數據獲取及處理,數據分析整理,報表展現等多個部分組成,但是從用戶角度來講,他只能看到報表展現,他看不到項目的後臺處理過程。
  • 一鍵生成報表模板的神器來了
    想要實現自動化報表生成,關鍵在於兩點:數據的自動錄入、報表模板的自動生成。所謂的模板錄入,就是指只需要製作一次模板,就可以在以後直接套用,你只需要將每天的數據錄入就可以了;而自動發布,指的是設置定時調度,將錄好數據的報表定時發布到平臺上,不必臨時抱佛腳。
  • 數據主管只會Sql和Excel,卻靠一工具,把報表做成了數據可視化
    數據分析對我來說相當抽象,把各項KPI數據呈現出來算是數據分析嗎?當時的我非常地迷茫。再加上平日裡被取數的工作安排得滿滿當當,根本就沒有時間做有價值的數據分析。後來一個偶然的機會,我就知道我創造價值的時刻來了:管理層啟動了企業數位化轉型的計劃,核心目標是數據驅動精細化運營。
  • Excel財務分析報表,全自動生成,太高大上了吧
    當你在財務行業職位坐得越來越高的時候,你就會發現,那些領導階層,他們每天考慮的不是如何做帳報稅這些簡單基礎的東西了,他們每天忙碌的,都是如何分析公司的財務狀況,如何進行判斷與決策,所以,你離前途,差的只是提升自己,具備財務分析能力。當然,做好財務報表,是成長的第一步。
  • 想要簡單製作數據可視化分析報表?這個工具絕對好用!
    特別是對於一些高級的Excel報表,可是它需要複雜的函數,使用編程代碼處理,上手難度也很高,對於小白非常不友好,那怎麼改變企業報表的困境,讓更多的報表得到利用,提高數據效率呢?當然可以有兩個方法可以解決,一是自主研發一款報表工具;二是使用別人開發的報表工具。前者要實現的話,前期需要投入大量的人力跟精力,跟產出的不成正比,所以,我還是推薦大家選用市面上的報表工具使用,較為方便。
  • 永洪敏捷BI:讓所有企業在一天內實現大數據可視化分析
    開發一個大數據分析系統動輒要半年以上的周期,且之後的使用過程仍然很痛苦,因為業務的分析需求總在不斷變化,每次改變指標的計算公式、分析維度的組合時,都要花至少幾周時間來重新修改系統和程序,耗時耗力,滿足不了業務的要求,還往往會影響核心業務系統的開發進度。現在,企業實現大數據的可視化分析只需要一天的時間。
  • 55 個實用大數據可視化分析工具
    ,而不是單個數據科學家、設計師或數據分析員;我們更需要重新思考我們所知道的數據可視化,圖表和圖形還只能在一個或兩個維度上傳遞信息, 那麼他們怎樣才能與其他維度融合到一起深入挖掘大數據呢?、金融圖表、工控圖表、數據透視表、OLAP多維分析等圖表報表開發的。
  • 年終固定資產盤點報告可一鍵生成
    那麼,如何做成一份準確和完美的固定資產盤點報告呢?年終盤點報告的準確性為什麼會被質疑呢?年終固定資產大盤點的工作繁瑣和耗時長是眾所周知的一件事。對於固定資產盤點的執行人而言,抱著一大摞表格去挨個進行固定資產盤點是一項體力與腦力的挑戰。對於規模比較大的企業,年終盤點的盤點通常以「周」或「月」計。
  • Tableau介紹與上市企業的可視化數據分析案例
    軟體做了一個很漂亮的可視化分析報告。今天這篇文章就分享一下Tableau和同類型數據分析工具的介紹,以及為什麼要用這類工具,還有這篇關於上市企業的數據分析報告的截圖。 中國式報表很多國家的人習慣把excel表格叫做中國式報表,原因是在同一張表單上數字密密麻麻、條目繁多,對於表單不熟悉的人來講,想從這繁雜的數據中找到有用的信息有一定難度。
  • 智慧法院 | 青海智慧法院建設簡訊(第135期)-「案件效率核心指標」一鍵生成
    本期刊發省高級法院審判管理和信息技術處《關於向院庭長推廣「案件效率核心指標」等質效數據報表一鍵生成功能》。2019年10月,省高級法院黨組書記、院長陳明國針對青海法院辦案效率現狀和人案情況,提出青海法院審判質效要在全國法院靠前的要求。
  • excel表格公式那麼多,如何才能自動化生成數據報表?
    場景1:使用輕流後,學校老師會如何收集三好學生的個人信息呢?第一步:製作好三好學生信息收集表單,搭建好流程;第二步:發布表單,直接導出數據。場景2:使用輕流後,政府部門會如何收集垃圾分類投放的信息呢?第一步:製作好垃圾分類投放信息收集表單;第二步:填寫表單,並生成可視化數據報表。
  • 一個模版讓報表自動生成,領導:這才是數據分析人該幹的事
    大部分的數據分析師都或多或少掉入這樣的陷阱:每天大部分的工作都花在查數上,幹著幹著變成了「查數菇」。看上去幫老闆或其他同事查數據是數據分析師天經地義的任務,怎麼會成為陷阱呢?我來給你分析分析:業務部門需求多,查數據的任務量特別大。查數據的任務急。
  • 55 個實用的大數據可視化分析工具
    一款好的工具可以讓你事半功倍,尤其是在大數據時代,更需要強有力的工具通過使數據有意義的方式實現數據可視化,還有數據的可交互性;我們還需要跨學科的團隊,而不是單個數據科學家、設計師或數據分析員;我們更需要重新思考我們所知道的數據可視化,圖表和圖形還只能在一個或兩個維度上傳遞信息, 那麼他們怎樣才能與其他維度融合到一起深入挖掘大數據呢?此時就需要倚仗大數據可視化(BDV)工具。
  • 189套Excel可視化財務報表,自帶公式自動生成,直接套用
    189套Excel可視化財務報表,自帶公式自動生成,直接套用對於我們財務人來講,財務報表也是我們必備的一項技能,但是呢,有些人做得很好,還是受不到領導的稱讚,這是為什麼呢?財務報表不緊要美觀好看,還得讓人很直觀的可以看出數據,這樣的報表老闆怎麼能不喜歡?
  • 數據可視化:用數字給你講個故事
    「數據可視化」就是上述崗位的看家本領之一,所謂:顏值即正義,數據可視化水平很大程度影響了工作輸出質量。那到底什麼是數據可視化,如何實現數據可視化,作為產品經理,又該如何設計一個自研的可視化系統/工具呢?俗語有曰:字不如表,表不如圖。