2011-09-19 20 views
8

मैं रंगीन स्केल के अनुरूप मानों के साथ 2 डी सरणी (लगभग 1000x1000) प्लॉट करना चाहता हूं। तो मैंने matplotlib.pcolor का उपयोग किया, जो कि बस इतना था, लेकिन किसी कारण से यह उन धीमी गति से धीमा होता है (जैसे 2 मिनट या तो बस साजिश के लिए)। उसका क्या कारण है? फ्लोट मानों को int16 में परिवर्तित कर देगा या तो मदद करें? क्या पिक्सर के लिए कोई विकल्प हैं?matplotlib.pcolor बहुत धीमी है। विकल्प?

from pylab import * 

data=genfromtxt('data.txt',autostrip=True, case_sensitive=True) 
pcolor(data,cmap='hot') 
colorbar() 
show() 

data.txt सरणी युक्त है। लोडिंग प्रक्रिया में कुछ सेकंड लगते हैं, लेकिन मुख्य कंप्यूटिंग समय निश्चित रूप से दोनों रंग() और शो() फ़ंक्शन (लगभग 60-90 सेकेंड प्रत्येक) द्वारा उपयोग किया जाता है।

+0

क्या आप कुछ कोड दिखा सकते हैं? – Louis

+4

शायद आपको जो चाहिए वह pyplot.imshow() है? – steabert

+0

yup, यह बहुत बेहतर काम करता है, बहुत बहुत धन्यवाद! – Jakob

उत्तर

9

imshow बहुत तेज होगा। pcolor एक पॉलीकोलेक्शन देता है, जो दस लाख तत्वों के साथ काफी धीमी गति से चल रहा है, जबकि इम्शो सिर्फ एक छवि है।

ध्यान दें कि रंग में सूचकांक imshow से थोड़ा अलग है, हालांकि आपको इसके बारे में चिंता करने की आवश्यकता नहीं हो सकती है कि आपने रंग का उपयोग कैसे किया। इसके अलावा, अक्सर जब रंग से इम्शो में जा रहे हैं तो कोई इमशो में interpolation="nearest" सेट करना चाहता है (लेकिन ऐसी बड़ी छवियों के लिए इससे कोई फर्क नहीं पड़ता)।

9

भविष्य के googlers के लिए एक नोट के रूप में, pcolormesh और pcolorfast भी है।

pcolormesh राज्यों के लिए प्रलेखन कि:

pcolormesh pcolor() के समान है, लेकिन एक अलग तंत्र का उपयोग करता है और एक अलग ऑब्जेक्ट; पिक्सर पॉलीकोलेक्शन देता है लेकिन पकोर्मेश एक क्वाडमेश देता है। यह बहुत तेज है, इसलिए यह लगभग हमेशा बड़े सरणी के लिए पसंद किया जाता है।

imshow भी तेज़ होना चाहिए, लेकिन उदाहरण के संबंध में थोड़ा कम लचीला होना चाहिए गैर रेक्टिलिनर अक्ष।

pcolor, pcolormesh, और imshow के बीच एक अच्छा तुलना के लिए this page देखें।

+2

सभी चार संभावनाओं की मूल तुलना के लिए http://matplotlib.org/examples/pylab_examples/pcolor_demo.html भी देखें: पिक्सर, पकोर्मेश, इमशो और पिक्लोफास्ट। – kadee

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