2012-06-10 15 views
7

मैंपर दूसरे उदाहरण के समान इमशो का उपयोग करके प्लॉट करना चाहता था लेकिन धुरी के लिए स्केल को फिर से परिभाषित करना चाहता था। मैं यह भी करने के लिए छवि को अभी भी रहना चाहूंगा!मैं छवि खींचने के बिना matplotlib में imshow के पैमाने को कैसे बदलूं?

उदाहरण से कोड:

from scipy import * 
from pylab import * 

# Creating the grid of coordinates x,y 
x,y = ogrid[-1.:1.:.01, -1.:1.:.01] 

z = 3*y*(3*x**2-y**2)/4 + .5*cos(6*pi * sqrt(x**2 +y**2) + arctan2(x,y)) 

hold(True) 
# Creating image 
imshow(z, origin='lower', extent=[-1,1,-1,1]) 

xlabel('x') 
ylabel('y') 
title('A spiral !') 

# Adding a line plot slicing the z matrix just for fun. 
plot(x[:], z[50, :]) 

show() 

अगर मैं हद तक संशोधित व्यापक हो सकता है, उदाहरण के लिए:

imshow(z, origin='lower', extent=[-4,4,-1,1]) 

फिर जिसके परिणामस्वरूप छवि फैला है। लेकिन मैं बस इतना करना चाहता था कि मेरे डेटा के साथ टिक टिक बदल जाए। मुझे पता है कि मैं एक्स और वाई डेटा को संरक्षित करने के लिए रंग का उपयोग कर सकता हूं, हालांकि इसमें अन्य विधियां हैं।

मैं इस सवाल का जवाब जो मुझे मैन्युअल रूप से सभी टिक फिर से करना करने की अनुमति देता पाया:

How do I convert (or scale) axis values and redefine the tick frequency in matplotlib?

लेकिन वह थोड़ा overkill लगता है।

क्या लेबल द्वारा दिखाए गए हद को बदलने का कोई तरीका है?

उत्तर

11

help(imshow)aspect तर्क मिलेगा, जो कुछ प्रयोग के बाद आप जो चाहते हैं उसे देने के लिए प्रतीत होता है (सर्पिल की एक स्क्वायर छवि लेकिन एक्स स्केल के साथ -4 से 4 और y से -1 से 1 तक) जब उपयोग किया जाता है इस तरह:

imshow(z, origin='lower', extent=[-4,4,-1,1], aspect=4) 

लेकिन अब अपने plot, से -1 1 करने के लिए अभी भी है ताकि आप के रूप में अच्छी है कि संशोधित करने के लिए होगा ...

plot(x[:]*4, z[50, :]) 

मुझे लगता है कि आप कई तत्वों है जब कि केवल एक का उपयोग करके संशोधित किया जाना होगा -लाइन टिक रिलाबेलिंग ओवरकिल नहीं है:

xticks(xticks()[0], [str(t*4) for t in xticks()[0]]) 
+0

पहलू मेरे उपयोग के मामले के लिए एक अच्छा समाधान है क्योंकि मेरे पास कोई साजिश नहीं है। और आप xticks को मेरे से अधिक सुरुचिपूर्ण समाधान में ठीक करते हैं। धन्यवाद! – ubershmekel

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