पर्यावरण: पायथन 2.7, मैटलोट्लिब 1.3, आईपीथॉन नोटबुक 1.1, लिनक्स, क्रोम। कोड एक एकल इनपुट सेल में है, का उपयोग करके--pylab=inline
मैं एक स्ट्रीम का उपभोग करने और गतिशील रूप से हर 5 सेकंड में एक प्लॉट को अपडेट करने के लिए IPython नोटबुक और पांडा का उपयोग करना चाहता हूं।
जब मैं सिर्फ टेक्स्ट फॉर्मेट में डेटा प्रिंट करने के लिए प्रिंट स्टेटमेंट का उपयोग करता हूं, तो यह पूरी तरह से ठीक काम करता है: आउटपुट सेल सिर्फ डेटा प्रिंट करता है और नई पंक्तियों को जोड़ता है। लेकिन जब मैं डेटा को प्लॉट करने की कोशिश करता हूं (और फिर इसे लूप में अपडेट करता हूं), तो प्लॉट कभी आउटपुट सेल में दिखाई नहीं देता है। लेकिन अगर मैं लूप को हटा देता हूं, तो बस एक बार प्लॉट करें। यह बढ़िया काम करता है।
फिर मैंने कुछ सरल परीक्षण किया:
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)
आउटपुट कुछ भी नहीं दिखाएगा जब तक कि मैं मैन्युअल रूप से प्रक्रिया को बाधित नहीं करता (ctrl + m + i)। और मैं इसे बाधित करने के बाद, प्लॉट को कई ओवरलैप की गई लाइनों के रूप में सही ढंग से दिखाता है। लेकिन जो मैं वास्तव में चाहता हूं वह एक ऐसा प्लॉट है जो हर 5 सेकंड में अपडेट हो जाता है और अपडेट हो जाता है (या जब भी plot()
फ़ंक्शन को कॉल किया जाता है, ठीक उसी तरह जैसे कि मैंने ऊपर बताए गए प्रिंट स्टेटमेंट आउटपुट क्या कहते हैं, जो अच्छी तरह से काम करता है)। सेल पूरी तरह से हो जाने के बाद केवल अंतिम चार्ट दिखाना केवल वही नहीं है जो मैं चाहता हूं।
मैंने प्रत्येक के बाद स्पष्ट रूप से ड्रा () फ़ंक्शन को जोड़ने की कोशिश की plot()
, आदि उनमें से कोई भी काम नहीं करता है। आश्चर्य है कि IPython नोटबुक में एक सेल के भीतर / जबकि लूप द्वारा प्लॉट को गतिशील रूप से कैसे अपडेट किया जाए।