xticks pyplot font example axessubplot python matplotlib

python - pyplot - matplotlib xticks



¿Por qué mi xlabel está cortado en mi trama matplotlib? (3)

También puede configurar el relleno personalizado como predeterminado en su $HOME/.matplotlib/matplotlib_rc siguiente manera. En el siguiente ejemplo, he modificado tanto el margen inferior como el margen exterior inmediato:

# The figure subplot parameters. All dimensions are a fraction of the # figure width or height figure.subplot.left : 0.1 #left side of the subplots of the figure #figure.subplot.right : 0.9 figure.subplot.bottom : 0.15 ...

Estoy trazando un conjunto de datos usando matplotlib donde tengo una xlabel que es bastante "alta" (es una fórmula presentada en TeX que contiene una fracción y por lo tanto tiene la altura equivalente de un par de líneas de texto).

En cualquier caso, la parte inferior de la fórmula siempre se corta cuando dibujo las figuras. Cambiar el tamaño de la figura no parece ayudar, y no he podido descifrar cómo desplazar el eje x "hacia arriba" para dejar espacio para la xlabel. Algo así sería una solución temporal razonable, pero lo que sería bueno sería tener una manera de hacer que matplotlib reconozca automáticamente que la etiqueta está cortada y cambiar el tamaño en consecuencia.

Aquí hay un ejemplo de lo que quiero decir:

import matplotlib.pyplot as plt plt.figure() plt.ylabel(r''$/ln/left(/frac{x_a-x_b}{x_a-x_c}/right)$'') plt.xlabel(r''$/ln/left(/frac{x_a-x_d}{x_a-x_e}/right)$'') plt.show()

mientras que puedes ver toda la etiqueta y, la xlabel se corta en la parte inferior.

En el caso de que se trate de un problema específico de la máquina, estoy ejecutando esto en OSX 10.6.8 con matplotlib 1.0.0


Una opción fácil es configurar matplotlib para ajustar automáticamente el tamaño de la gráfica. Funciona perfectamente para mí y no estoy seguro de por qué no está activado de manera predeterminada.

Método 1

Establezca esto en su archivo matplotlibrc

figure.autolayout : True

Consulte aquí para obtener más información sobre cómo personalizar el archivo matplotlibrc: http://matplotlib.org/users/customizing.html

Método 2

Actualice rcParams durante el tiempo de ejecución como este

from matplotlib import rcParams rcParams.update({''figure.autolayout'': True})

La ventaja de utilizar este enfoque es que su código producirá los mismos gráficos en máquinas configuradas de forma diferente.


Utilizar:

import matplotlib.pyplot as plt plt.gcf().subplots_adjust(bottom=0.15)

para hacer espacio para la etiqueta.

Editar:

Desde que di la respuesta, matplotlib ha agregado la función tight_layout() . Entonces sugiero usarlo:

plt.tight_layout()

debería hacer espacio para la xlabel.