溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python如何繪制交通流折線圖

發(fā)布時(shí)間:2022-06-15 11:44:49 來(lái)源:億速云 閱讀:146 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了Python如何繪制交通流折線圖的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Python如何繪制交通流折線圖文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。

一、數(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è)文件:

Python如何繪制交通流折線圖

通過(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ù)。

Python如何繪制交通流折線圖

2、折線圖繪制

數(shù)據(jù)中包含的三個(gè)特征為(交通流量,平均速度,平均占用率),取出繪圖需要的第一個(gè)特征(這里只繪制其中一個(gè)探測(cè)器的)。

flow = data['data'][:, 0, 0]

Python如何繪制交通流折線圖

 導(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é)果如下:

Python如何繪制交通流折線圖

關(guān)于“Python如何繪制交通流折線圖”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Python如何繪制交通流折線圖”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI