No exactamente. (Echa un vistazo a the new matplotlib.pyplot.tight_layout()
function para algo vagamente similar, aunque ...)
Sin embargo, el truco habitual con las etiquetas largas de x-tick es simplemente rotarlas.
Por ejemplo, si tenemos algo con xticklabels superpuestas:
import matplotlib.pyplot as plt
plt.plot(range(10))
labels = [15 * repr(i) for i in range(10)]
plt.xticks(range(10), labels)
plt.show()

Podemos rotar ellos para hacerlos más fáciles de leer:. (La clave es la rotation=30
La llamada a plt.tight_layout()
solo ajusta el margen inferior de la trama de manera que las etiquetas no van por el borde inferior.)
import matplotlib.pyplot as plt
plt.plot(range(10))
labels = [10 * repr(i) for i in range(10)]
plt.xticks(range(10), labels, rotation=30)
plt.tight_layout()
plt.show()

De forma predeterminada, las etiquetas de tilde se centran en el tic. Para las garrapatas giradas, a menudo tiene más sentido que el borde izquierdo o derecho de la etiqueta comience en el tic.
Por ejemplo, algo como esto (lado derecho, rotación positiva):
import matplotlib.pyplot as plt
plt.plot(range(10))
labels = [10 * repr(i) for i in range(10)]
plt.xticks(range(10), labels, rotation=30, ha='right')
plt.tight_layout()
plt.show()

O este (lado izquierdo, rotación negativa):
import matplotlib.pyplot as plt
plt.plot(range(10))
labels = [10 * repr(i) for i in range(10)]
plt.xticks(range(10), labels, rotation=-30, ha='left')
plt.tight_layout()
plt.show()

Joe, ¿qué pasa si no quiero ningún número Y recupero el espacio, para que el lienzo producido no tiene márgenes, solo el cuadrado (idealmente solo el gráfico, sin líneas)? Intento mostrarlo en un contenedor gtk, y lo necesito de forma precisa. 'a.axis ('off')' simplemente elimina los números, y 'a.margins (0, tight = True)' parece inoperante ... ¡Ayuda! – yPhil
@xaccrocheur - 'ax.margins' controla cómo funciona el autoescalado de los límites de datos, no los márgenes" exteriores "de la gráfica. Si desea controlar la cantidad de lienzo que ocupan los ejes, o bien 1) haga manualmente un eje que ocupe toda la figura utilizando 'ax = fig.add_axes ([0, 0, 1, 1])', o 2) use 'subplots_adjust' para cambiar los márgenes" externos "de sus subparcelas (p. Ej.' Fig.subplots_adjust (0, 0, 1, 1) ') –