Python繪制交通流折線圖詳情
一、數(shù)據(jù)集下載
加州高速公路PEMS數(shù)據(jù)集
這里繪制PEMS04中的交通流量數(shù)據(jù)。該數(shù)據(jù)集中包含舊金山2018年1月1日至2月28日的29條道路上307個(gè)探測(cè)器每五分鐘收集的數(shù)據(jù)。
二、折線圖繪制
1、解壓npz文件
npz是一種numpy文件存儲(chǔ)的壓縮格式,可使用numpy進(jìn)行讀取。
allow_pickle=True用于防止numpy版本過(guò)高帶來(lái)的錯(cuò)誤。
data.files查看壓縮文件下的所有文件。
import numpy as np data = np.load(數(shù)據(jù)集存放地址, allow_pickle=True) print(data.files)
可以看到壓縮文件下只有data一個(gè)文件:
通過(guò) data['data'] 即可對(duì)該數(shù)據(jù)集進(jìn)行讀取。我們也可以查看一下該數(shù)據(jù)的維度。
print(data['data'].shape)
其維度如下:
16992 = 59天×24小時(shí)×12(每五分鐘統(tǒng)計(jì)一次流量數(shù)據(jù)),307為探測(cè)器數(shù)量,3為特征數(shù)。
2、折線圖繪制
數(shù)據(jù)中包含的三個(gè)特征為(交通流量,平均速度,平均占用率),取出繪圖需要的第一個(gè)特征(這里只繪制其中一個(gè)探測(cè)器的)。
flow = data['data'][:, 0, 0]
導(dǎo)入matplotlib包,通過(guò)pyplot來(lái)繪制最簡(jiǎn)單的折線圖。
import matplotlib.pyplot as plt
由于希望觀測(cè)到工作日的流量變化,我們將橫坐標(biāo)替換為周一至周日。舊金山2018年1月1日為周一。
繪制的全部代碼如下:
import numpy as np import matplotlib.pyplot as plt data = np.load(文件路徑, allow_pickle=True) flow = data['data'][:, 0, 0] print(len(flow)) week = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] x = [] for i in range(59): x.append(week[(i + 1) % 7]) y = [] sum = 0 for i in range(len(flow)): if i == 0 or (i + 1) % 288 != 0: sum += flow[i] else: y.append(sum) sum = 0 fig = plt.figure(figsize=(15, 5)) # 圖片寬度設(shè)置的大一些 plt.title('traffic flow in San Francisco') plt.xlabel('day') plt.ylabel('flow') plt.xticks(np.arange(59), x) plt.plot(np.arange(59), y, linestyle='-') fig.autofmt_xdate(rotation=45) # x軸的刻度標(biāo)簽?zāi)鏁r(shí)針旋轉(zhuǎn)45度 plt.show()
繪制結(jié)果如下:
文章所以大部分的KPI都會(huì)遵循“Mary's Peak”模式,比如說(shuō)使用公共交通工具出行的情況、外賣點(diǎn)餐情況。從上圖可以看出,這里的交通流量是遵循這一模式的。
到此這篇關(guān)于Python繪制交通流折線圖詳情的文章就介紹到這了,更多相關(guān)Python繪制折線圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
matlab中imadjust函數(shù)的作用及應(yīng)用舉例
這篇文章主要介紹了matlab中imadjust函數(shù)的作用及應(yīng)用舉例,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02WxPython界面利用pubsub如何實(shí)現(xiàn)多線程控制
這篇文章主要介紹了WxPython界面利用pubsub如何實(shí)現(xiàn)多線程控制,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11詳解Python3 中hasattr()、getattr()、setattr()、delattr()函數(shù)及示例代碼數(shù)
本文通過(guò)示例代碼給大家詳細(xì)介紹了Python3 中hasattr()、getattr()、setattr()、delattr()函數(shù),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2018-04-04Python實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之快速排序詳解
這篇文章主要介紹了Python實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之快速排序,詳細(xì)分析了快速排序的原理與Python實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-04-04python同時(shí)遍歷兩個(gè)list用法說(shuō)明
這篇文章主要介紹了python同時(shí)遍歷兩個(gè)list用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05Python如何篩選序列中的元素的方法實(shí)現(xiàn)
這篇文章主要介紹了Python如何篩選序列中的元素的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07pandas組內(nèi)排序,并在每個(gè)分組內(nèi)按序打上序號(hào)的操作
這篇文章主要介紹了pandas組內(nèi)排序,并在每個(gè)分組內(nèi)按序打上序號(hào)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03Windows安裝Anaconda3的方法及使用過(guò)程詳解
今天帶大家學(xué)習(xí)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著在windows上Anaconda3的安裝方法及使用展開(kāi),文中有非常詳細(xì)的介紹,需要的朋友可以參考下2021-06-06