2012-03-28 6 views
13

मैं matlab से स्क्रिप्ट की साजिश रचने matplotlib के लिए/pylab एक छवि का अनुवाद करने में है, और मुझे नीचे matlab छवि के रूप में एक ही प्रभाव हासिल करने की कोशिश कर रहा हूँ:मैं अपनी matplotlib साजिश अक्षों से परे कैसे जाने दे सकता हूँ?

image generated using matlab

आप देख सकते हैं, z आदेश भूखंडों के ग्रिड के ज़ेड ऑर्डर से अधिक प्रतीत होता है, इसलिए मार्कर अक्षों से छिपे नहीं होते हैं। हालांकि, मैं अपने matplotlib छवि के साथ भी ऐसा ही करने के लिए एक रास्ता समझ नहीं कर सकते हैं:

eimage generated with matplotlib

अगर यह संभव है y की सीमा को बढ़ाने के लिए बिना एक ही प्रदर्शन प्राप्त करने के लिए मैं सोच रहा हूँ एक्सिस। http://matplotlib.sourceforge.net/examples/pylab_examples/zorder_demo.html
नोट है कि एक उच्च ज़ेड-ऑर्डर एक ग्राफ तत्व अग्रभूमि में अधिक किया जा रहा है के बराबर:

+0

मुझे यकीन है कि आप matlab व्यवहार पसंद करते हैं करने के लिए अच्छा कारण हो लेकिन IMHO कुल्हाड़ियों के बाहर ड्राइंग एक सुविधा की तुलना में एक बग के अधिक है हूँ। – joaquin

उत्तर

30

अक्षरों से परे दिखाने के लिए मार्कर प्राप्त करने के लिए आप क्लिपिंग बंद कर सकते हैं। यह plot कमांड clip_on=False में कीवर्ड तर्क का उपयोग करके किया जा सकता है।

उदाहरण के लिए:

import matplotlib.pyplot as plt 
plt.plot(range(5), range(5), 'ro', markersize=20, clip_on=False, zorder=100) 
plt.show() 

enter image description here

+0

+1 हां! मैं काफी हद तक निश्चित हूं कि ओपी क्या ढूंढ रहा था, लेकिन यह इतना स्पष्ट नहीं था - कम से कम - मेरे (घटिया) उत्तर पर उनकी टिप्पणी तक। उम्मीद है कि ओपी इसे स्वीकार करेगा। पोस्ट करने का शुक्रिया। – bernie

+0

धन्यवाद आपको बहुत पसंद है !!!!! मुझे ठीक इसी की आवश्यकता थी! – nay

+0

बढ़िया! मुझे जिस चीज की जरूरत थी। – bretcj7

1

यह कैसे zorder kwarg उपयोग करने के लिए की एक पूरी उदाहरण है।

अपने दूसरे प्रश्न के लिए, Figure वर्ग के उदाहरण के लिए figsize kwarg पर एक नजर है: http://matplotlib.sourceforge.net/api/figure_api.html?highlight=figsize#matplotlib.figure.Figure

आपको समस्या आ जाती है, तो आपके कोड के कुछ पोस्ट करें और हम अधिक- देने के लिए सक्षम हो जाएगा विस्तृत सिफारिशें शुभकामनाएँ।

+0

धन्यवाद, मैं आपके द्वारा लिखे गए 2 लिंक पर एक नज़र डालेगा। कोड के लिए, मुझे लगता है कि यह matplotlib का एक डिफ़ॉल्ट व्यवहार है, यह मानने के लिए कि यदि बिंदु स्वयं (यहां उदाहरण के लिए 0.2; 0) दिखाई दे रहा है, तो यह कोई मुद्दा नहीं है यदि इसके चारों ओर मार्कर पूरी तरह से दिखाई नहीं दे रहा है। यही वह व्यवहार है जिसे मैं – nay

+0

@nay बदलने की कोशिश कर रहा हूं: ऐसा लगता है कि tom10 आपके प्रश्न का उत्तर है। हैप्पी कोडिंग! – bernie

+0

हाँ !!! मदद के लिए बहुत बहुत धन्यवाद =) – nay

0

यदि आप लाइनों को दूसरे के बाद एक प्लॉट कर रहे हैं, तो बस प्लॉटिंग कॉल का ऑर्डर बदलें और यह जेड ऑर्डर को ठीक करेगा।

+0

आपके उत्तर के लिए धन्यवाद, वास्तव में जो मैं करने की कोशिश कर रहा हूं वह ग्रिड के जेड ऑर्डर से ज़्यादा भूखंडों का एक्स ऑर्डर करना है, ताकि मार्कर (उदाहरण के लिए (0.2; 0)) matlab छवि की तरह पूरी तरह से दिखाई देते हैं। – nay

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