matrices graficos graficas graficar examples ejes coordenadas python graph matplotlib axes

graficos - matplotlib python 3



Matplotlib/pyplot: ¿Cómo aplicar el rango del eje? (4)

Intenta poner la llamada al axis después de todos los comandos de trazado.

Me gustaría dibujar un gráfico de líneas 2D estándar con pylot, pero forzar los valores de los ejes a estar entre 0 y 600 en la x, y 10k y 20k en la y. Déjame ir con un ejemplo ...

import pylab as p p.title(save_file) p.axis([0.0,600.0,1000000.0,2000000.0]) #define keys and items elsewhere.. p.plot(keys,items) p.savefig(save_file, dpi=100)

Sin embargo, los ejes aún se ajustan al tamaño de los datos. Estoy interpretando el efecto de p.axis para establecer el máximo y el mínimo, sin forzarlos a ser máximo o mínimo. Lo mismo sucede cuando trato de usar p.xlim () etc.

¿Alguna idea?

Gracias.


Llamar a p.plot después de establecer los límites es el motivo por el cual se está p.plot . Estás en lo cierto en cuanto a que desactivar el autoescalado obtendrá la respuesta correcta, pero también lo hará cuando xlim() o ylim() después de tu comando de plot .

Utilizo esto bastante para invertir el eje x, trabajo en astronomía y usamos un sistema de magnitud que está al revés (es decir, las estrellas más brillantes tienen una magnitud menor) así que generalmente cambio los límites con

lims = xlim() xlim([lims[1], lims[0]])


Para responder a mi propia pregunta, el truco es desactivar el escalado automático ...

p.axis([0.0,600.0, 10000.0,20000.0]) ax = p.gca() ax.set_autoscale_on(False)


Probé todas las respuestas anteriores, y luego resumí una guía de cómo dibujar la imagen de ejes fijos. Se aplicó tanto para show función como la función savefig .

  1. antes de trazar:

    fig = pylab.figure() ax = fig.gca() ax.set_autoscale_on(False)

Esto es para solicitar un ax que es una subplot(1,1,1) .

  1. Durante la trama:

    ax.plot(''You plot argument'') # Put inside your argument, like ax.plot(x,y,label=''test'') ax.axis(''The list of range'') # Put in side your range [xmin,xmax,ymin,ymax], like ax.axis([-5,5,-5,200])

  2. Después de la trama:

    1. Para mostrar la imagen:

      fig.show()

    2. Para guardar la figura:

      fig.savefig(''the name of your figure'')

Descubrí que poner el axis en la parte frontal del código no funcionará aunque haya configurado autoscale_on en False .

Usé este código para crear una serie de animación. Y debajo está el ejemplo de peinar múltiples imágenes de ejes fijos en una animación.