Python 數據科學入門11:Unix 時間

在這個 Matplotlib 教程中,我們將介紹如何處理 unix 時間戳的轉換,然後在圖形中繪製日期戳。 使用 Yahoo Finance API,你會注意到,如果你使用較大的時間間隔,如1y(一年),你會得到我們一直在使用的日期戳,但如果你使用10d(10 天),反之你會得到 unix 時間的時間戳。

Unix 時間是 1970 年 1 月 1 日以後的秒數,它是跨程序的標準化時間表示方法。 也就是說,Matplotlib 並不歡迎 unix 時間戳。 這裡是你可以使用 Matplotlib 來處理 unix 時間的方式:

<code>def graph_data(stock):

fig = plt.figure()
ax1 = plt.subplot2grid((1,1), (0,0))1234/<code>

所以在這裡,我們所做的是 unix 時間的寫入處理,並註釋掉我們以前的代碼,因為我們為之後的使用而保存它。 這裡的主要區別是:

<code>dateconv = np.vectorize(dt.datetime.fromtimestamp)
date = dateconv(date)12/<code>

這裡,我們將時間戳轉換為日期戳,然後將其轉換為 Matplotlib 想要的時間。

現在,由於某些原因,我的 unix 時間帶有另一行包含 6 個元素的數據,並且它包含了術語label,因此,在我們解析數據的for循環中,我們為你再添加一個需要注意的檢查:

<code>stock_price_url = 'http://chartapi.finance.yahoo.com/instrument/1.0/'+stock+'/chartdata;type=quote;range=10y/csv'
source_code = urllib.request.urlopen(stock_price_url).read().decode()
stock_data = []
split_source = source_code.split('\\n')
for line in split_source:
split_line = line.split(',')
if len(split_line) == 6:
if 'values' not in line and 'labels' not in line:
stock_data.append(line)

date, closep, highp, lowp, openp, volume = np.loadtxt(stock_data,
delimiter=',',

unpack=True,
converters={0: bytespdate2num('%Y%m%d')})1234567891011121314/<code>

現在你的圖表應該類似:

Python 數據科學入門11:Unix 時間

這裡的所有扁平線條的原因是市場關閉。 有了這個短期數據,我們可以得到日內數據。 所以交易開放時有很多點,然後市場關閉時就沒有了,然後又是一堆,然後又是沒有。


分享到:


相關文章: