ऊपरी सीमा के लिए 'ऑटो' कैसे सेट करें, लेकिन matplotlib.pyplot के साथ एक निश्चित निचली सीमा रखें


112

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

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

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')

जवाबों:


104

तुम बस पारित कर सकते हैं leftया rightकरने के लिए set_xlim:

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

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

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

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

आप वर्तमान अक्ष के लिए सीमा का उपयोग plt.xlimया plt.ylimसेट करने के लिए भी कर सकते हैं ।
क्रिस

26
जब मैं ऐसा करता हूं तो ऊपरी सीमा चिपक जाती है, जो खिड़की में मौजूद मूल्य पर निर्भर करता है। यह ऑटो-स्केलिंग नहीं रहता है।
इलियट

8
यहाँ @Elliot के रूप में एक ही मुद्दा है। मूल्यों की साजिश रचने के बाद (एक तरफा) ylim / xlim सेट करके तय किया जा सकता है।
फबियानफुच्स

5
डेटा की साजिश रचने के बाद सीमा निर्धारित करना सुनिश्चित करें, या ऊपरी सीमा 1 पर डिफ़ॉल्ट हो जाएगी
केले

37

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

plt.xlim(xmin=0)

5
xminऔर xmaxके पक्ष में पदावनत किया गया है leftऔर rightmatplotlib 3.0 में।
onewhaleid

12

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

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

>>> 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)

वर्तमान अक्ष की x- सीमा निर्धारित करने के लिए, 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


3

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.