Autoescala de matplotlib

Necesito obtener un gráfico que se ajuste a los datos automáticamente utilizando matplotlib. Este es el código que me dieron:

import matplotlib.pyplot as plt from matplotlib.collections import LineCollection .... lines = LineCollection(mpl.line_holder, colors=mpl.colorholder , linestyle='solid') plt.axes().add_collection(lines) plt.axes().set_aspect('equal', 'datalim') plt.draw() plt.show() 

Esto crea un gráfico, sin embargo, la ventana es siempre la misma (0- ~ .8) sin importar cuáles sean los datos, incluso si todos los datos están fuera de esa ventana. La ventana resultante no tiene la capacidad de alejarse, solo hacia adentro, por lo que este es un problema importante. No puedo encontrar ningún lugar donde se establezca ningún tipo de tamaño, ni puedo encontrar detalles sobre cuáles son los valores predeterminados. Necesito la ventana para ajustar automáticamente los datos, pero no puedo encontrar ninguna función que lo haga (por alguna razón, autoscale_on (True) no lo hace). Los datos son muy variables, por lo que establecer límites estrictos no es una opción. ¿Cómo puedo obtener esto para mostrar correctamente?

No estoy seguro si esto es lo que querías, pero puedo cambiarlo si no fuera lo que estabas buscando.

 import matplotlib.pyplot as plt from matplotlib.collections import LineCollection import pylab as p fig = plt.figure() pts1 = [] pts2 = [] for i in range(100): pts1.append([i,i]) pts2.append([-i-3,-i]) lines = LineCollection([pts1,pts2], linestyles='solid') subplt = fig.add_subplot(111,aspect='equal') subplt.add_collection(lines) subplt.autoscale_view(True,True,True) p.show() 

Espero que ayude.

Echa un vistazo al sitio web de Eli Bendersky , específicamente este post . El ejemplo en la parte inferior de la publicación se puede descargar. Le permite establecer si el eje x seguirá el trazado o permanecerá estático mientras el eje y cambia con los datos.