상한값으로 '자동'을 설정하지만 matplotlib.pyplot으로 고정 된 하한값을 유지하는 방법


112

y 축의 상한을 'auto'로 설정하고 싶지만 y 축의 하한을 항상 0으로 유지하고 싶습니다. '자동'과 '자동 범위'를 시도했지만 작동하지 않는 것 같습니다. 미리 감사드립니다.

내 코드는 다음과 같습니다.

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현재의 축에 대한 제한을 설정할 수 있습니다.
Chris

26
이 작업을 수행 할 때 상한은 창이 인스턴스화하는 값에 고정됩니다. 자동 크기 조정으로 유지되지 않습니다.
Elliot

8
여기서 @Elliot와 같은 문제입니다. 값을 플로팅 한 후 (단면) ylim / xlim을 설정하여 수정할 수 있습니다.
fabianfuchs 2015 년

5
데이터를 플로팅 한 후 한계를 설정하십시오. 그렇지 않으면 상한이 기본적으로 1로 설정됩니다.
Banana

37

xlim제한 중 하나를 설정 하십시오.

plt.xlim(xmin=0)

5
xmin그리고 xmax찬성 사용되지 않습니다 leftright하기 matplotlib 3.0 인치
onewhaleid

12

앞서 말했듯이 matplotlib 문서에 따르면 주어진 축의 x 제한은 클래스 axset_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. 키워드 인수는 topbottom입니다.


3

@silvio에 점을 추가하십시오 figure, ax1 = plt.subplots(1,2,1). 축을 사용하여 . 그런 다음 ax1.set_xlim(xmin = 0)작동합니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.