xlimit tight subplots set_xlim plotrange change python matplotlib limits

tight - python plot change axis limits



Cómo establecer ''auto'' para el límite superior, pero mantener un límite inferior fijo con matplotlib.pyplot (4)

Como se mencionó anteriormente y de acuerdo con la documentación de matplotlib, los límites x de un eje ax se pueden establecer usando el método set_xlim de la clase matplotlib.axes.Axes .

Por ejemplo,

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

Un límite puede permanecer inalterado (por ejemplo, el límite izquierdo):

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

Para establecer los límites x del eje actual, el módulo matplotlib.pyplot contiene la función xlim que simplemente ajusta matplotlib.pyplot.gca y 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

Del mismo modo, para los límites y, use matplotlib.axes.Axes.set_ylim o matplotlib.pyplot.ylim . Los argumentos de palabra clave son top y bottom .

Quiero establecer el límite superior del eje y en ''automático'', pero quiero mantener el límite inferior del eje y para que siempre sea cero. Intenté ''auto'' y ''autorange'', pero parece que no funcionan. Gracias de antemano.

Aquí está mi código:

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


Puede pasar simplemente a la left o right a set_xlim :

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

Para el eje y, use la bottom o top :

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


Simplemente agregue un punto en @silvio: si usa eje para trazar como figure, ax1 = plt.subplots(1,2,1) . ¡Entonces ax1.set_xlim(xmin = 0) también funciona!


Simplemente establece xlim para uno de los límites:

plt.xlim(xmin=0)