可视化实战!Python+BI,手把手教你做炫酷的NBA可视化分析
之前手癢做了一次NBA可視化分析,好多人追著我問教程,這兩天終于閑下來了,花時間整理這篇NBA可視化分析教程,手把手教大家做一次炫酷的數(shù)據(jù)可視化分析!
先部分展示本次教程的作品:
?
數(shù)據(jù)獲取
本次可視化分析的數(shù)據(jù)來自于網(wǎng)絡(luò),有一部分是從外網(wǎng)下載的,還有一部分是python從NBA官網(wǎng)爬取的,數(shù)據(jù)集包含從上世紀(jì)90年代開始到16-17賽季,包括NBA所有球員、球隊(duì)的常規(guī)賽,季后賽數(shù)據(jù),球員各賽季的薪金等數(shù)據(jù)。
?
?
確定分析思路
因?yàn)楸救瞬皇欠浅I(yè)的NBA球迷,所以再在拿到數(shù)據(jù)之后,我去科普了一下NBA比賽需要哪些數(shù)據(jù),通過對應(yīng)網(wǎng)站的瀏覽和查看,了解到數(shù)據(jù)主要分為三類,一類是比賽數(shù)據(jù),以字段,勝場,得分,主客場勝負(fù),勝率,凈勝場,最近10場勝負(fù)為主。一類是球員數(shù)據(jù),以命中率,PER,WS,得分為主。最后一類薪資數(shù)據(jù),以球員薪資,占比,球隊(duì)薪資,占比為主。
了解了關(guān)注點(diǎn)后,我查看了手上有的數(shù)據(jù),并把其劃分為4塊。列出四個主題,球隊(duì)分析,球員分析,薪資分析,季后賽分析。主題相應(yīng)分析模塊如下所示:
?
根據(jù)分析模塊,選擇合適的可視化圖表
按照上面的思路,我們可以根據(jù)分析模塊提前確定好可視化圖表,后面就可以按部就班制作可視化分析圖表,提高效率。至于圖表的選擇,這塊之前我在很多文章都講過,參照下面這張圖就可以了:
除了可視化圖表之外,要想讓你的可視化作品更加貼合主題,還可利用一些可視化元素,比如NBA相關(guān)的圖片或者圖標(biāo)等等,這些元素往往能夠起到畫龍點(diǎn)睛的效果。
基礎(chǔ)數(shù)據(jù)整理,數(shù)據(jù)加工
上面的準(zhǔn)備工作完成之后,接下來就是使用工具進(jìn)行分析了。涉及到數(shù)據(jù)表比較多,而且需要進(jìn)行的數(shù)據(jù)加工也比較繁雜,用Excel顯然不是一個快捷的辦法,我選擇了用BI工具FineBI進(jìn)行可視化分析操作。
打開FineBI,點(diǎn)擊添加數(shù)據(jù)表,把本次分析所用到的數(shù)據(jù)表導(dǎo)入
?
然后利用FineBI的自助數(shù)據(jù)集功能進(jìn)行數(shù)據(jù)處理,按照我們上面的數(shù)據(jù)分析思路,我利用魚骨圖梳理的四個分析主題需要用到數(shù)據(jù)表,然后分別創(chuàng)建自助數(shù)據(jù)集進(jìn)行加工
?
利用FineBI的自助數(shù)據(jù)集加工數(shù)據(jù)的過程比Excel方便的多,它自帶數(shù)據(jù)處理的工程,可以對數(shù)據(jù)進(jìn)行分組求和、求平均、過濾等一系列的操作,而且每一步操作在左邊的面板都會有記錄,方便后續(xù)檢查
點(diǎn)擊創(chuàng)建自助數(shù)據(jù)集,制作球員數(shù)據(jù)寬表。
第一步,新增比賽失分列,用函數(shù)從比分列中獲取比賽失分,具體的函數(shù)使用方法,系統(tǒng)理由非常詳細(xì)的講解,我就不多說了
?
然后再新增列,分別統(tǒng)計出主客場勝、負(fù)場數(shù)
?
然后按照球員和時間分組匯總,并計算出每個球員的勝率(勝率=勝場/(勝場+負(fù)場))和場均得分(場均得分=得分/場次)、場均失分(場均失分=比賽失分/場次)
?
?
這樣一張球員數(shù)據(jù)寬表就基本完成了,整個數(shù)據(jù)加工的過程步驟比較多,但是操作上比較簡便,步驟式的記錄也不容易出錯。用同樣的方法我們再制作出上面魚骨圖中的其他數(shù)據(jù)表,最近10場比賽的數(shù)據(jù)、球隊(duì)數(shù)據(jù)寬表等等,和上面的操作類似,篇幅原因我就不展示了
可視化圖表制作
最復(fù)雜的數(shù)據(jù)加工環(huán)節(jié)完成之后,下一步就是進(jìn)行可視化圖表制作。這個過程用BI工具制作非常簡單,速度比Excel快N倍,把數(shù)據(jù)指標(biāo)和維度拖拽到坐標(biāo)軸上,圖表就自動生成了,系統(tǒng)還會根據(jù)你選擇的指標(biāo)和維度的數(shù)量,智能推薦合適的可視化圖表
?
然后根據(jù)個人喜好,調(diào)整圖表配色及細(xì)節(jié)
?
最后各主題分析模塊的可視化圖表如下:
球隊(duì)分析:
?
從歷史數(shù)據(jù)看,SAS圣安東尼奧馬刺隊(duì)表現(xiàn)最好,以49.69勝場,63.9%的勝率居球隊(duì)第一名。而近兩年勝場最高的球隊(duì)是GSW金州勇士隊(duì)獲得了115場勝場,也榮獲了單年最高的72勝場,而SAS圣安東尼奧馬刺隊(duì)則是以102勝場保持第二名。
14年前,SAS勝場超過GSW,但近兩年發(fā)揮低于GSW,再來看球隊(duì)16賽季因素排名表,GSW16年奪冠,是由于其綜合實(shí)力。得分、助攻、三分、籃板、蓋帽等均處于領(lǐng)先水平,而SAS隊(duì)的特點(diǎn)則是,穩(wěn)扎穩(wěn)打,犯規(guī)較多,失誤較少。
球員分析:
?
根據(jù)16-17賽季個人平均PER,平均得分,平均籃板,平均三分,平均助攻,得出16賽季MVP為Jarnell Stokes,得分王為Russell Westbrook ,籃板王為Hassan whitesid,三分王為Stephen Curry,助攻王為James Harden。
個人喜歡火箭就拿James Harden做了下分析,從命中熱力圖可知,他的得分區(qū)域主要是籃下投籃及罰球區(qū)投籃。根據(jù)八維雷達(dá)圖,哈登的長處在于得分,助攻和籃板,得分遠(yuǎn)超16賽季平均水平,除了中,遠(yuǎn)距離命中率,哈登其他位置的命中率也隨著時間逐步上升。PER值也是逐年上升,正值黃金時期。
薪資分析:
?
平均薪資前十的球隊(duì)為布魯克林籃網(wǎng),紐約尼克斯,邁阿密熱火,俄克拉荷馬雷霆等,進(jìn)一步分析得知布魯克林籃網(wǎng)因?yàn)槭切虑蜿?duì),所以平均薪水高,整體球隊(duì)薪資呈上升趨勢。
個人薪資情況的話,John Wall薪資最高,且個人平均薪資在2015賽季后顯著上升,單看GSW隊(duì),隊(duì)內(nèi)成員薪資差距大,Keven,klay,Stephen,andrew占了薪資的80%,個人薪水和賽季個人得分呈正相關(guān),也和個人PER呈正相關(guān)
生成儀表板
最后調(diào)整儀表板上的圖表布局,突出重點(diǎn)數(shù)據(jù),優(yōu)化圖表及配色,加入準(zhǔn)備好的NBA可視化元素,把我們分析的結(jié)論也可以添加在儀表板中,一張完整的NBA可視化分析報告就完成了:
?
歡迎關(guān)注我的公眾號“商業(yè)智能研究”,私信回復(fù)“資料包”,即可領(lǐng)取大數(shù)據(jù)、數(shù)據(jù)中臺、商業(yè)智能、數(shù)據(jù)倉庫等6G精華資料!
總結(jié)
以上是生活随笔為你收集整理的可视化实战!Python+BI,手把手教你做炫酷的NBA可视化分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做为一个程序员,真的要经历学历之痛?互联
- 下一篇: 黑科技!当会爬虫的Python遇上会画图