2013-09-29 17 views
25

Bir CSV dosyasından bir zaman dizisi grafiğini çizmeye çalışıyorum. Dosyayı okumayı başardım ve verileri strptime kullanarak dizeden dönüştürdüm ve bir listede saklandı. Matplotlib'de tarih bilgisini içeren listeyle bir deneme çizimini çizmeyi denediğimde, tarihi bir dizi nokta olarak çizdi; Yani, 2012-may-31 19: 00 saatleri arasında, x ekseninin değeri için 2012'de, 05, 19, 31, 00 ve y ekseninde bir nokta ile bir arsa elde ettim. Bunun, çizime dair tarih bilgilerinin aktarılmasının doğru yolu olmadığını anlıyorum. Birisi bana bu bilgiyi doğru bir şekilde nasıl ileteceğini söyleyebilir.Python'da zaman serileri nasıl oluşturulur

cevap

70

datetime.datetime metin adresinin x ekseni verilerini dönüştürün, datetime.strptime kullanın:

import matplotlib.pyplot as plt 
import datetime 
import numpy as np 

x = np.array([datetime.datetime(2013, 9, 28, i, 0) for i in range(24)]) 
y = np.random.randint(100, size=x.shape) 

plt.plot(x,y) 
plt.show() 

enter image description here:

>>> from datetime import datetime 
>>> datetime.strptime("2012-may-31 19:00", "%Y-%b-%d %H:%M") 
datetime.datetime(2012, 5, 31, 19, 0) 

Bu tarihsaat bir dizi var bir kere verileri çizmek için nasıl bir örnektir

+1

Teşekkür ederiz. Datetime.strptime() yerine time.srtptime() kullanıyordum ve bu da soruna neden oluyordu. – Mohanasundar

+4

Cevabını faydalı buluyorsanız, SO'da size teşekkür etmenin yolu upvoting/accepting (up-key veya tıklatılarak) kontrol üzerine) cevap :) – jabaldonedo

+2

@jabaldonedo o zaman seni kabul ederim. Güzel avatar btw :) – RickyA

İlgili konular