2012-05-10 19 views
35

मैं imshow() का उपयोग कर के बाद से यह() imagesc के समान मैटलैब में है एक numpy सरणी कल्पना करने के लिए कोशिश कर रहा हूँ है।आंकड़ा() बहुत छोटा

imshow(random.rand(8, 90), interpolation='nearest') 

परिणामी आंकड़ा ग्रे खिड़की के केंद्र में बहुत छोटा है, जबकि अधिकांश जगह बेकार है। आकृति को बड़ा बनाने के लिए मैं पैरामीटर कैसे सेट कर सकता हूं? मैंने figsize = (xx, xx) की कोशिश की और यह वही नहीं है जो मैं चाहता हूं। धन्यवाद!

उत्तर

64

आप imshow के लिए एक aspect तर्क देना नहीं है, तो यह आपके matplotlibrc में image.aspect के लिए मूल्य का प्रयोग करेंगे। इस मान के लिए डिफ़ॉल्ट matplotlibrc में डिफ़ॉल्ट equal है। तो imshow आपके सरणी को समान पहलू अनुपात के साथ प्लॉट करेगा।

आप आप सेट कर सकते हैं एक समान पहलू की जरूरत नहीं है aspectauto

imshow(random.rand(8, 90), interpolation='nearest', aspect='auto') 

जो निम्न चित्र

देता है

imshow-auto

आप एक समान पहलू अनुपात आप के लिए है चाहते हैं अनुकूलित अपने figsize पहलू

fig, ax = subplots(figsize=(18, 2)) 
ax.imshow(random.rand(8, 90), interpolation='nearest') 
tight_layout() 
के अनुसार

जो आप देता है:

imshow-equal

7

कि अजीब बात है, यह निश्चित रूप से मेरे लिए काम करता है:

figure(figsize = (20,2)) 
imshow(random.rand(8, 90), interpolation='nearest') 

मैं "MacOSX" बैकएंड का उपयोग कर रहा है, btw।

0

मैं भी अजगर करने के लिए नया हूँ। यहाँ कुछ है कि तरह लग रहा है कि तुम क्या

axes([0.08, 0.08, 0.94-0.08, 0.94-0.08]) #[left, bottom, width, height] 
axis('scaled')` 

करना चाहते हैं जाएगा मेरा मानना ​​है कि इस कैनवास का आकार फैसला करता है।

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