2012-08-28 15 views
5

मैं इस तरह के रूप में एक आधार मानचित्र पर सदिश क्षेत्र उत्पन्न करने के लिए एक पाश का उपयोग कर रहा:एक पाश में matplotlib के तरकश का उपयोग कर कुशलतापूर्वक

for i in range(365): 
    barbs = m.quiver(x, y, u[i, :], v[i, :], scale = 100) 
    plt.draw() 
    barbs.remove() 

कार्यक्रम हर पाश के साथ काफी अधिक स्मृति लेता है। क्या इस से निकाल पाने के लिए कोई तरीका है? जैसे प्रत्येक लूप के अंत में पूरी तरह से बार्ब हटाना?

+0

आप उन्हें क्यों आकर्षित करते हैं और फिर उन्हें हटाते हैं? भूखंडों को गति देने का एक तरीका उन्हें पहले बनाना है, और उसके बाद आईओफ़() को कॉल करके इंटरैक्टिव मोड सेट होने के साथ अंत में ड्रॉ को कॉल करें। आप उदाहरण इस से बहुत दूर हैं, लेकिन क्योंकि यह अपूर्ण है, यह अनुमान लगाना मुश्किल है कि आप क्या चाहते हैं। – tom10

उत्तर

4

यदि आपको केवल (u, v) घटक रीसेट करने की आवश्यकता है तो आप लूप के अंदर barb.set_UVC(newU,newV,newC) का उपयोग कर सकते हैं।

barbs = m.quiver(x, y, u[0, :], v[0, :], scale = 100) 
for i in range(365): 
    barbs.set_UVC(u[i,:],v[i,:]) 
    #save the figure or something 

भी देखें Python: copy basemap or remove data from figure, Visualization of 3D-numpy-array frame by frame,

आप, एक एनीमेशन बनाने matplotlib की animation मॉड्यूल करने के लिए देखने के लिए कोशिश कर रहे हैं, तो यह आप के लिए विवरण का एक बहुत का ख्याल रखता है।

संबंधित मुद्दे