2011-06-23 15 views
8

मैं matplotlib के लिए नया हूँ (और इसे प्यार कर रहा हूँ!), लेकिन निराश हो रहा हूँ। मेरे पास एक ध्रुवीय ग्रिड है जो एक 2 डी सरणी के रूप में दर्शाया गया है। (पंक्तियां रेडियल सेक्शन हैं, कॉलम अजीमुथल सेक्शन हैं)क्या Matplotlib imshow() का उपयोग करके ध्रुवीय साजिश के रूप में 2 डी सरणी प्रदर्शित करना संभव है?

मैं pyplot.imshow() और pyplot का उपयोग कर ध्रुवीय साजिश के रूप में एक आयताकार छवि (आर बनाम थेटा) दोनों के रूप में 2 डी सरणी प्रदर्शित करने में सक्षम हूं। pcolor()। हालांकि, पिक्सर() दर्दनाक है जो मैं उपयोग कर रहे सरणी के आकार के लिए धीमा हूं, इसलिए मैं imshow() का उपयोग करके एक ध्रुवीय ग्रिड के रूप में सरणी प्रदर्शित करने में सक्षम होना चाहता हूं।

पिक्सर() का उपयोग करके, यह सबप्लॉट के लिए ध्रुवीय = सही सेटिंग के रूप में सरल है। Imshow() का उपयोग कर 2 डी सरणी को ध्रुवीय साजिश के रूप में प्रदर्शित करने का कोई तरीका है? पूरे सरणी पर समन्वय परिवर्तन करने के बिना? अग्रिम

+0

मैं सिर्फ pcolormesh (पता चला), लेकिन मैं एक AttributeError हो रही है: प्रसिद्ध हो जाना। यकीन नहीं है कि इसका क्या अर्थ है ... जैसे मैंने कहा, मैं matplotlib के लिए नया हूं और मुझे कहना है कि प्रलेखन की कमी है :( – John

+0

आपके सरणी कितने बड़े हैं और आपका जाल तार्किक आयताकार है? – matt

+0

मैंने सफलतापूर्वक प्रबंधित किया है pcolormesh() काम करने के लिए, और यह * रंगीन() से काफी * तेज * है। इसलिए मुझे imshow() का उपयोग करने की आवश्यकता नहीं होगी। मैंने x, y = numpy.meshgrid() पहले से एक्स को सुनिश्चित करने के लिए उपयोग किया था , y निर्देशांक और 2 डी मान डेटा सभी मेल खाते हैं। सरणी 170x314 से 850x1570 तक कहीं भी हैं। – John

उत्तर

9

कुछ शोध करने के बाद धन्यवाद मैं pcolormesh() फ़ंक्शन, जो काफी imshow की गति के pcolor() और तुलनीय का उपयोग कर से अधिक तेजी से साबित हो गया है की खोज की()।

यहाँ मेरी समाधान है:

import matplotlib.pyplot as plt 
import numpy as np 

#...some data processing 

theta,rad = np.meshgrid(used_theta, used_rad) #rectangular plot of polar data 
X = theta 
Y = rad 

fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.pcolormesh(X, Y, data2D) #X,Y & data2D must all be same dimensions 
plt.show() 
+1

नए संस्करण में काम नहीं करता है, फिर भी 'add_subplot (111, polar =' True ') की आवश्यकता है। – Sleepyhead

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