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)