tiempo real matrices graficos graficas graficar ejes coordenadas python matplotlib

python - real - estableciendo limite del eje y en matplotlib



matplotlib title position (7)

Necesito ayuda para establecer los límites del eje y en matplotlib. Aquí está el código que intenté, sin éxito.

import matplotlib.pyplot as plt plt.figure(1, figsize = (8.5,11)) plt.suptitle(''plot title'') ax = [] aPlot = plt.subplot(321, axisbg = ''w'', title = "Year 1") ax.append(aPlot) plt.plot(paramValues,plotDataPrice[0], color = ''#340B8C'', marker = ''o'', ms = 5, mfc = ''#EB1717'') plt.xticks(paramValues) plt.ylabel(''Average Price'') plt.xlabel(''Mark-up'') plt.grid(True) plt.ylim((25,250))

Con los datos que tengo para esta gráfica, obtengo límites del eje y de 20 y 200. Sin embargo, quiero los límites 20 y 250.


Esto debería funcionar. Tu código funciona para mí, como para Tamás y Manoj Govindan. Parece que podrías intentar actualizar Matplotlib. Si no puede actualizar Matplotlib (por ejemplo, si no tiene suficientes derechos administrativos), tal vez le matplotlib.use() usar un backend diferente con matplotlib.use() .


Esto funcionó al menos en la versión 2.2.2 de matplotlib:

plt.axis([None, None, 0, 100])

Probablemente esta es una buena forma de configurar, por ejemplo, solo xmin y ymax, etc.


Para agregar a la respuesta de @Hima, si desea modificar un límite x o y actual, puede usar lo siguiente.

import numpy as np # you probably alredy do this so no extra overhead fig, axes = plt.subplot() axes.plot(data[:,0], data[:,1]) xlim = axes.get_xlim() # example of how to zoomout by a factor of 0.1 factor = 0.1 new_xlim = (xlim[0] + xlim[1])/2 + np.array((-0.5, 0.5)) * (xlim[1] - xlim[0]) * (1 + factor) axes.set_xlim(new_xlim)

Encuentro esto particularmente útil cuando quiero alejar o acercar solo un poco de la configuración de trazado predeterminada.


Prueba esto . Funciona para subplots también.

axes = plt.gca() axes.set_xlim([xmin,xmax]) axes.set_ylim([ymin,ymax])


Si un eje (generado por el código debajo del código que se muestra en la pregunta) comparte el rango con los primeros ejes, asegúrese de establecer el rango después de la última gráfica de esos ejes.


Tu código funciona también para mí. Sin embargo, otra solución puede ser obtener el eje de la trama y luego cambiar solo los valores de y:

x1,x2,y1,y2 = plt.axis()
plt.axis((x1,x2,25,250))


Una cosa que puedes hacer es establecer tu rango de ejes por ti mismo usando matplotlib.pyplot.axis.

matplotlib.pyplot.axis

from matplotlib import pyplot as plt plt.axis([0, 10, 0, 20])

0,10 es para el rango del eje x. 0,20 es para el rango del eje y.

o también puede usar matplotlib.pyplot.xlim o matplotlib.pyplot.ylim

matplotlib.pyplot.ylim

plt.ylim(-2, 2) plt.xlim(0,10)