使用Python可視化圖表分析行程數(shù)據(jù)
最近一直在想怎么分析一下個人的行程數(shù)據(jù),看看能夠從行程數(shù)據(jù)里面分析出點什么來。最開始我的期望還是蠻高的,有如下的一些預(yù)期:
- 根據(jù)出行時間范圍,可以基本確定他的生活節(jié)奏,工作強(qiáng)度
- 能夠通過行程時間范圍來猜測汽車尾號
- 根據(jù)出行的耗時歷史來建議出行時間
如果能夠分析得到這些信息,感覺還是蠻有意思的,于是開始自己動手,第一個問題就是數(shù)據(jù)源,導(dǎo)航軟件目前還不提供行程數(shù)據(jù)的導(dǎo)出,所以我是把7-8兩個月的行程數(shù)據(jù)逐個照著導(dǎo)航行程整理出來了,大體的數(shù)據(jù)情況還可以,不過其中有些數(shù)據(jù)做了額外處理,比如時間的處理,因為是如果是7:15,那么按照數(shù)字化顯示就不能是7.15,而更合理的顯示是7.4,還有行程時間,比如1:30,是需要統(tǒng)一按照分鐘90分鐘來整合的,整理后得到的數(shù)據(jù)如下:
首先我按照時間做了對行程的耗時做了分析,結(jié)果發(fā)現(xiàn)這個數(shù)據(jù)似乎不大理想,本來預(yù)期是比較穩(wěn)定的,還打算按照這個數(shù)據(jù)做下預(yù)測。
這種情況下就得換一個思路了,先看看數(shù)據(jù)的整體分布,使用條形圖其實是不好體現(xiàn)數(shù)據(jù)的分布情況,因為有些行程之間是沒有直接關(guān)聯(lián)的,比如早上和晚上的行程,因為時間的差異,條形圖的模式反而會有很大的抖動。
如下是按照行程的耗時分布圖:
如下是行程出發(fā)時間的分布情況,基本上來說都是在6:30~7:00之間開始出發(fā),晚上基本在20:00左右返程。
如下是按照周一到周日的行程耗時分布,可以明顯看到周二的行程分布要少很多,還不如周六,周日的多,所以從這一點是可以猜出來很可能是因為限號。
當(dāng)然前面提到了兩個指標(biāo),一個是行程耗時,一個是出發(fā)時間,還有一個是路程,因為路程和耗時兩者是有一定關(guān)聯(lián),但是折算下來一個折中的指標(biāo)就是平均速度。所以按照平均速度的分布情況來看,周一和周五是最堵的,相對周四和周六是最通暢的。
我們區(qū)別于一般的可視化,引入箱線圖,可以看到平均行程的耗時在45分鐘左右,區(qū)間基本在30-60分鐘之間。
其實數(shù)據(jù)分析到了這里,還是有很大差異的,雖然或多或少的分析出來了一些內(nèi)容,但是有些指標(biāo)還是沒有充分使用到,而且顯示的指標(biāo)情況還是不夠清晰,所以打算使用seaborn進(jìn)一步做下調(diào)整。
如下是行程距離,行程耗時和星期數(shù)的綜合分布圖。
如下是星期和行程耗時的分布圖,相比之前的分布圖來說會更加清晰一些。
我們繼續(xù)引入平均速度,出發(fā)時間和星期數(shù)進(jìn)行關(guān)聯(lián),可以看到整個行程會有明顯的分水嶺,早間和晚間基本堵是工作日,而其他的時間基本都是周末。
而要進(jìn)一步探索這些數(shù)據(jù)指標(biāo)間的關(guān)聯(lián),就需要引入略復(fù)雜的圖PairGrid,可以把多個指標(biāo)都放入,可以生成多個維度的分布圖。
接下來需要對數(shù)據(jù)的指標(biāo)情況進(jìn)一步分析,引入檢驗和預(yù)測的功能。
本文轉(zhuǎn)載自微信公眾號「楊建榮的學(xué)習(xí)筆記」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系楊建榮的學(xué)習(xí)筆記公眾號。