मैं एक इलशो प्लॉट में एक अंडाकार प्लॉट करने की कोशिश कर रहा हूं। यह काम करता है, लेकिन छवि की साजिश रचने के बाद दीर्घवृत्त की साजिश रचने से छुटकारा पाने के लिए एक सीमा है, जो मैं करना चाहते हैं, जिसके परिणामस्वरूप xlim और ylim बढ़ाने के लिए लगता है:matplotlib: साजिश का उपयोग करते समय सीमाएं और उसी अक्ष में imshow
नोट नहीं सफेद सीमा सीधे है कि वहाँ केवल इशशो कॉल करने के बाद।
मेरे कोड इस प्रकार दिखता है:
self.dpi = 100
self.fig = Figure((6.0, 6.0), dpi=self.dpi)
self.canvas = FigureCanvas(self.fig)
self.canvas.setMinimumSize(800, 400)
self.cax = None
self.axes = self.fig.add_subplot(111)
self.axes.imshow(channel1, interpolation="nearest")
self.canvas.draw()
self.axes.plot(dat[0], dat[1], "b-")
मैंने पहले और "साजिश" बुला के बाद सीमा सेट की कोशिश की है, कोई प्रभाव नहीं के साथ
# get limits after calling imshow
xlim, ylim = pylab.xlim(), pylab.ylim()
...
# set limits before/after calling plot
self.axes.set_xlim(xlim)
self.axes.set_ylim(ylim)
मैं कैसे को बढ़ाने के लिए नहीं साजिश मजबूर कर सकते हैं मौजूदा आंकड़े सीमाएं?
समाधान (जो करने के लिए धन्यवाद):
#for newer matplotlib versions
self.axes.imshow(channel1, interpolation="nearest")
self.axes.autoscale(False)
self.axes.plot(dat[0], dat[1], "b-")
#for older matplotlib versions (worked for me using 0.99.1.1)
self.axes.imshow(channel1, interpolation="nearest")
self.axes.plot(dat[0], dat[1], "b-", scalex=False, scaley=False)
हाय जो, अपने विस्तृत exp के लिए धन्यवाद lanation! मेरा matplotlib संस्करण बहुत पुराना प्रतीत होता है (matplotlib .__ version__ = '0.99.1.1') क्योंकि यह न तो plt.subplots() और न ही ax.autoscale का समर्थन करता है, हालांकि आपने ऑटोस्केल = गलत बताया है, मुझे एक [वैकल्पिक समाधान] मिला है (http://stackoverflow.com/questions/7386872/make-matplotlib-autoscaling-ignore-some-of-the-plots) जो मेरी समस्या को हल करता है: प्रत्येक बार जब मैं imshow को कॉल करने के बाद साजिश का उपयोग करता हूं, तो मैं कीवर्ड तर्क स्केलक्स = झूठी, स्केली = झूठी, जो सही काम करता है! धन्यवाद! – soramimo