Ortam: Python 2.7, matplotlib 1.3, IPython notebook 1.1, linux, chrome. Kod, tek bir giriş hücresindedir.--pylab=inline
Bir akışı kullanmak ve her 5 saniyede bir grafiği dinamik olarak güncellemek için IPython not defterini ve pandaları kullanmak istiyorum.
Verileri metin biçiminde yazdırmak için yalnızca print deyimini kullandığımda, mükemmel çalışıyor: çıktı hücresi verileri yazdırmaya ve yeni satırlar eklemeye devam ediyor. Ancak verileri çizmeye çalıştığımda (ve sonra bir döngüde güncellemeye çalıştığımda), çizim asla çıkış hücresinde görünmüyor. Ancak döngüyü kaldırırsam, sadece bir kez çizin. İyi çalışıyor.
Sonra basit bir test yaptım:
i = pd.date_range('2013-1-1',periods=100,freq='s')
while True:
plot(pd.Series(data=np.random.randn(100), index=i))
#pd.Series(data=np.random.randn(100), index=i).plot() also tried this one
time.sleep(5)
İşlemi manuel olarak kesene kadar çıktı hiçbir şey göstermeyecek (ctrl + m + i). Ve onu kestikten sonra, arsa birden çok üst üste binen çizgi olarak doğru şekilde görünüyor. Ama gerçekten istediğim şey, her 5 saniyede bir ortaya çıkan ve güncellenen bir olay örgüsüdür (veya plot()
işlev her çağrıldığında, tıpkı yukarıda bahsettiğim print deyimi çıktıları gibi, bu iyi çalışıyor). Sadece hücre tamamen bittikten sonra son grafiği göstermek istediğim şey DEĞİL.
Hatta her birinin arkasına açıkça draw () fonksiyonu eklemeye çalıştım plot()
, vs. Hiçbiri çalışmıyor. IPython not defterinde bir hücre içindeki bir for / while döngüsü ile bir grafiği dinamik olarak nasıl güncelleyeceğinizi merak edin.