2012-07-31 12 views
64

के साथ एक निश्चित निचली सीमा रखें, मैं वाई-अक्ष की ऊपरी सीमा को 'ऑटो' पर सेट करना चाहता हूं, लेकिन मैं निचली सीमा को रखना चाहता हूं वाई-अक्ष हमेशा शून्य होने के लिए। मैंने 'ऑटो' और 'ऑटोरेंज' की कोशिश की, लेकिन वे काम नहीं कर रहे हैं। पहले ही, आपका बहुत धन्यवाद।ऊपरी सीमा के लिए 'ऑटो' कैसे सेट करें, लेकिन matplotlib.pyplot

यहाँ मेरी कोड है:

import matplotlib.pyplot as plt 

def plot(results_plt,title,filename): 

    ############################ 
    # Plot results 

    # mirror result table such that each parameter forms an own data array 
    plt.cla() 
    #print results_plt 
    XY_results = [] 

    XY_results = zip(*results_plt) 

    plt.plot(XY_results[0], XY_results[2], marker = ".") 

    plt.title('%s' % (title)) 
    plt.xlabel('Input Voltage [V]') 
    plt.ylabel('Input Current [mA]') 

    plt.grid(True) 
    plt.xlim(3.0, 4.2) #***I want to keep these values fixed" 
    plt.ylim([0, 80]) #****CHANGE**** I want to change '80' to auto, but still keep 0 as the lower limit 
    plt.savefig(path+filename+'.png') 

उत्तर

66

तुम बस left या rightset_xlim को पारित कर सकते हैं:

plt.gca().set_xlim(left=0) 

y अक्ष के लिए, का उपयोग bottom या top:

plt.gca().set_ylim(bottom=0) 
+0

जब मैंने set_ylim के लिए बाईं ओर पारित किया तो मुझे एक त्रुटि मिली। मैंने इसके बजाय इसका उपयोग किया: plt.gca()। Set_ylim (ymin = 0) आपकी सहायता के लिए धन्यवाद। – vietnastee

+0

आप मौजूदा अक्ष के लिए सीमा निर्धारित करने के लिए 'plt.xlim' या' plt.ylim' का भी उपयोग कर सकते हैं। – Chris

+18

जब मैं ऐसा करता हूं तो ऊपरी सीमा खिड़की के तत्काल मूल्य के लिए चिपक जाती है। यह ऑटो-स्केलिंग नहीं रहती है। – Elliot

23

बस xlim के लिए सेट करें सीमा में से एक:

plt.xlim(xmin=0) 
2

बस पर @silvio एक बिंदु जोड़ने: यदि आप figure, ax1 = plt.subplots(1,2,1) तरह प्लॉट करने के लिए धुरी का उपयोग करें। फिर ax1.set_xlim(xmin = 0) भी काम करता है!

3

के रूप में ऊपर उल्लिखित और matplotlib दस्तावेज़ के अनुसार, किसी दिए गए अक्ष ax की एक्स-सीमा matplotlib.axes.Axes वर्ग के set_xlim विधि का उपयोग कर सेट किया जा सकता।

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

>>> ax.set_xlim(left_limit, right_limit) 
>>> ax.set_xlim((left_limit, right_limit)) 
>>> ax.set_xlim(left=left_limit, right=right_limit) 

एक सीमा में कोई बदलाव नहीं छोड़ा जा सकता है (उदाहरण के लिए छोड़ दिया सीमा):

>>> ax.set_xlim((None, right_limit)) 
>>> ax.set_xlim(None, right_limit) 
>>> ax.set_xlim(left=None, right=right_limit) 
>>> ax.set_xlim(right=right_limit) 

वर्तमान अक्ष के एक्स-सीमा निर्धारित करने के लिए, matplotlib.pyplot मॉड्यूल शामिल xlim फ़ंक्शन जो matplotlib.pyplot.gca और matplotlib.axes.Axes.set_xlim को लपेटता है।

def xlim(*args, **kwargs): 
    ax = gca() 
    if not args and not kwargs: 
     return ax.get_xlim() 
    ret = ax.set_xlim(*args, **kwargs) 
    return ret 

इसी तरह, y-सीमा के लिए, matplotlib.axes.Axes.set_ylim या matplotlib.pyplot.ylim का उपयोग करें। कीवर्ड तर्क top और bottom हैं।

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